Ⅰ sql Server 中时间函数
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
DATEDIFF
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF ( datepart , startdate , enddate )
DATEPART
返回代表指定日期的指定日期部分的整数。
语法
DATEPART ( datepart , date )
DATENAME
返回代表指定日期的指定日期部分的字符串。
语法
DATENAME ( datepart , date )
比较 DATEADD 和 DATEDIFF
DATEADD 函数向指定日期添加一段时间间隔。例如,如果 titles 表中所有书籍的发行日期都推迟三天,则可使用以下语句获得新的发行日期:
USE pubs
SELECT DATEADD(day, 3, pubdate)
FROM titles
如果日期参数的数据类型是 smalldatetime,则结果的数据类型也是 smalldatetime。可以使用 DATEADD 对 smalldatetime 值添加秒或毫秒,但只有当 DATEADD 返回的结果日期至少改变了 1 分钟时,这样做才有意义。
DATEDIFF 函数计算指定的两个日期中第二个日期与第一个日期之间各日期部分相差的时间量。换句话说,它得出两个日期之间的间隔。结果是等于 date2 - date1 的带符号整数值,以各日期部分为单位。
下面的查询使用日期 1995 年 11 月 30 日,并得出 pubdate 和该日期之间相差的天数。
USE pubs
SELECT DATEDIFF(day, pubdate, 'Nov 30 1995')
FROM titles
对于 titles 中 pubdate 为 1995 年 10 月 21 日的行,上述查询生成的结果为 40。(10 月 21 日和 11 月 30 日之间相差 40 天。)要计算以月为单位的间隔,请使用以下查询:
USE pubs
SELECT interval = DATEDIFF(month, pubdate, 'Nov 30 1995')
FROM titles
该查询对 pubdate 值在 10 月的行生成的值为 1,对 pubdate 值在 6 月的行生成的值为 5。
若 DATEDIFF 函数中的第一个日期晚于指定的第二个日期,则产生的结果为负数。由于 titles 中有两行使用 GETDATE 函数指派 pubdate 的值,所以这些值被设置为 pubs 数据库的创建日期,这样在前面的两个查询中这两行返回负数。
如果一个或两个日期参数是 smalldatetime 值,它们将在内部转换为 datetime 值进行计算。为了进行计算,smalldatetime 值中的秒和毫秒将自动设置为 0。
比较 DATEPART 和 DATENAME
DATEPART 和 DATENAME 函数将 datetime 值的指定部分(年、季度、天、小时等)生成为整数值或 ASCII 字符串。由于 smalldatetime 只能精确到分钟,所以在这两个函数中使用 smalldatetime 值时,返回的秒和毫秒部分总是为零。
下面的示例假定日期为 5 月 29 日:
SELECT DATEPART(month, GETDATE())
下面是结果集:
------------
5
(1 row(s) affected)
SELECT DATENAME(month, GETDATE())
下面是结果集:
------------
May
(1 row(s) affected)
具体可以参考SQL Server联机丛书(安装SQLServer时自动的帮助)
Ⅱ sql语句日期时间函数
可以将vs_date 使用时间函数 加上20个小时 和 37个小时 就可以了
然后使用between and 作为查询条件
如:
numtodsinterval函数 numtodsinterval(20,'HOUR')
还是使用numtodsinterval函数 参数second ,将vs_date截取到日期 ,在应用这个函数 构造开始和结束
就可以了
Ⅲ SQL Server中的时间函数有那些,最好举例说明
比较常用的时间函数有DateAdd,DateDiff,DateName,DatePart,Day,Getdate,Month,Year,GetUTCDate这几个函数。
以下依次说明,如需更详细说明请参考SQL帮助文档:
1. DateAdd函数
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
示例
此示例打印出 pubs 数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上 21 天。
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
2.DateDiff函数
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF ( datepart , startdate , enddate )
示例
此示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
3.DateName函数
返回代表指定日期的指定日期部分的字符串。
语法
DATENAME ( datepart , date )
示例
此示例从 GETDATE 返回的日期中提取月份名。
SELECT DATENAME(month, getdate()) AS 'Month Name'
4.DatePart函数
返回代表指定日期的指定日期部分的整数。
语法
DATEPART ( datepart , date )
示例
此示例显示 GETDATE 及 DATEPART 的输出。
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
5.Day函数
返回代表指定日期的天的日期部分的整数。
语法
DAY ( date )
示例
此示例返回从日期 03/12/1998 后的天数。
SELECT DAY('03/12/1998') AS 'Day Number'
6.GetDate函数
按 datetime 值的 Microsoft® SQL Server™ 标准内部格式返回当前系统日期和时间。
语法
GETDATE ( )
示例
下面的示例得出当前系统日期和时间:
SELECT GETDATE()
7.Month函数
返回代表指定日期月份的整数。
语法
MONTH ( date )
示例
下面的示例从日期 03/12/1998 中返回月份数。
SELECT "Month Number" = MONTH('03/12/1998')
8.Year函数
返回表示指定日期中的年份的整数。
语法
YEAR ( date )
示例
下例从日期 03/12/1998 中返回年份数。
SELECT "Year Number" = YEAR('03/12/1998')
9.GetUTCDate函数
返回表示当前 UTC 时间(世界时间坐标或格林尼治标准时间)的 datetime 值。当前的 UTC 时间得自当前的本地时间和运行 SQL Server 的计算机操作系统中的时区设置。
语法
GETUTCDATE()
示例
下例从日期 03/12/1998 中返回年份数。
SELECT GETUTCDATE()
Ⅳ 在sql中想插入一个空的date类型值,怎么写
1.首先,在桌面上单击“ManagementStudio”图标。
Ⅳ 请教高手列举出sql语句中所有有关日期 、时间的用法 谢谢
SQL语句中时间函数的应用Date 函数
描述:返回当前系统日期。
语法Date
DateAdd 函数
描述:返回已添加指定时间间隔的日期。
语法DateAdd(interval, number, date)
interval: 必选。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number: 必选。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date: 必选。Variant 或要添加 interval 的表示日期的文字。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
说明:可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。
DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在这个例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。
如果计算的日期是在公元 100 年之前则会产生错误。
如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。
DateDiff 函数
描述:返回两个日期之间的时间间隔。
语法DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear> )
interval: 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2: 必选。日期表达式。用于计算的两个日期。
firstdayofweek: 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。
说明DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff将计算 date2,但即使 date1 是星期日,也不会计算 date1。
如果 date1 晚于 date2,则 DateDiff 函数返回负数。
firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ")中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。
DatePart 函数
描述:返回给定日期的指定部分。
语法DatePart(interval, date[, firstdayofweek[, firstweekofyear> )
DatePart: 函数的语法有以下参数:
interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。
date: 必选。要计算的日期表达式。
firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。
说明DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。
firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。
如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
DateSerial 函数
描述:对于指定的年、月、日,返回 Date 子类型的 Variant。
语法DateSerial(year, month, day)
year: 从 100 到 9999 之间的数字或数值表达式。
month: 任意数值表达式。
day: 任意数值表达式。
说明:要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。
以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。
DateSerial(1990 - 10, 8 - 2, 1 - 1)
对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。
当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。
Datevalue 函数
描述:返回 Date 子类型的 Variant。
语法datevalue(date)
date 参数应是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是,date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。
说明:如果 date 参数包含时间信息,则 Datevalue 不会返回时间信息。但是如果 date 包含无效的时间信息(如 "89:98"),就会出现错误。
如果 date 是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则 Datevalue将会根据为系统指定的短日期格式识别月、日和年的顺序。Datevalue还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别 12/30/1991 和 12/30/91 之外,Datevalue还能识别 December 30, 1991 和 Dec 30, 1991。
如果省略了 date 的年份部分,Datevalue 将使用计算机系统日期中的当前年份。
Day 函数
描述:返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。
语法Day(date)
date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。
FormatDateTime 函数
描述:返回表达式,此表达式已被格式化为日期或时间。
语法:FormatDateTime(Date[,NamedFormat])
Date: 必选。要被格式化的日期表达式。
NamedFormat: 可选。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。
NamedFormat 参数可以有以下值:
(以下分别为:常数 值 描述)
vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。
vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。
vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。
vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。
vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。
Hour 函数
描述:返回 0 到 23 之间的一个整数(包括 0 和 23),代表一天中的某一小时。
语法:Hour(time)
time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。
Minute 函数
描述:返回 0 到 59 之间的一个整数(包括 0 和59),代表一小时内的某一分钟。
语法:Minute(time)
time 参数是任意可以代表时间的表达式。如果 time 参数包含 Null,则返回 Null。
Month 函数
描述:返回 1 到 12 之间的一个整数(包括 1 和 12),代表一年中的某月。
语法:Month(date)
date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。
MonthName 函数
描述:返回表明指定月份的字符串。
语法:MonthName(month[, abbreviate])
month: 必选。月份的数值定义。例如,一月是 1,二月是 2,以此类推。
abbreviate: 可选。Boolean 值,表明月份名称是否简写。如果省略,默认值为 False,即不简写月份名称。
Now 函数
描述:根据计算机系统设定的日期和时间返回当前的日期和时间值。
语法:Now
Second 函数
描述:返回 0 到 59 之间的一个整数(包括 1 和 59),代表一分钟内的某一秒。
语法:Second(time)
time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null,则返回 Null。
Time 函数
描述:返回 Date 子类型 Variant,指示当前系统时间。
语法:Time
TimeSerial 函数
描述:返回一个 Date 子类型的 Variant,含有指定时、分、秒的时间。
语法:TimeSerial(hour, minute, second)
hour: 其值为从 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的数值或数值表达式。
minute: 任意数值表达式。
second: 任意数值表达式。
说明:要指定一时刻,如 11:59:59,TimeSerial 的参数取值应在可接受的范围内;也就是说,小时应介于 0-23 之间,分和秒应介于0-59之间。但是,可以使用数值表达式为每个参数指定相对时间,这一表达式代表某时刻之前或之后的时、分或秒数。以下样例中使用了表达式代替绝对时间数。TimeSerial 函数返回中午之前六小时 (12 - 6) 十五分钟的时间 (-15),即 5:45:00 A.M.。
TimeSerial(12 - 6, -15, 0)
当任何一个参数的取值超出可接受的范围时,它会正确地进位到下一个较大的时间单位中。例如,如果指定了 75分钟,则这个时间被解释成一小时十五分钟。但是,如果任何一个参数值超出 -32768 到 32767的范围,就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围,也会导致错误。
Timevalue 函数
描述:返回包含时间的 Date 子类型的 Variant。
语法:Timevalue(time)
time参数通常是代表从 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表达式(包括0:00:00 和 23:59:59)。不过,time 也可以是代表该范围内任何时间的表达式。如果 time 参数包含 Null,则返回Null。
说明:可以采用 12 或 24 小时时钟格式输入时间。例如 "2:24PM" 和 "14:24" 都是有效的 time 参数。
如果 time 参数包含日期信息, Timevalue 函数并不返回日期信息。然而,如果 time 参数包含无效的日期信息,则会出现错误。
Weekday 函数
描述:返回代表一星期中某天的整数。
语法:Weekday(date, [firstdayofweek])
date: 可以代表日期的任意表达式。如果 date 参数中包含 Null,则返回 Null。
firstdayofweek: 指定星期中第一天的常数。如果省略,默认使用 vbSunday。
firstdayofweek 参数有如下设置:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
Weekday 函数返回如下值:
(以下分别为:常数 值 描述)
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
WeekdayName 函数
描述:返回一个字符串,表示星期中指定的某一天。
语法:WeekDayName(weekday, abbreviate, firstdayofweek)
weekday: 必选。星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。
abbreviate: 可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称。
firstdayofweek: 可选。指明星期第一天的数值。关于数值,请参阅“设置”部分。
firstdayofweek 参数有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
Year 函数
描述:返回一个代表某年的整数。
语法:Year(date)
date 参数是任意可以代表日期的参数。如果 date 参数中包含 Null,则返回 Null
Ⅵ sql中日期函数的用法
1.DateAdd ( I , N , D )
将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second 秒
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。
例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。
2.Day( 日期的字符串或表达式 )
传回日期的“日”部份。
例子: Day(" 12/1/1999 ")
结果: 1
3.DateDiff (I , D1 , D2[,FW[,FY]])
计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周
例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
结果: 97
说明:显示两个日期之间的期间为 97 天
想查询2007年2月9日的付款流水有单笔交易出现多张小票号的情况的小票号
这个要看一下你的表结构是什么样的啊?
Ⅶ sql 日期、时间函数的使用
1 select datepart(year,getdate()),datepart(month,getdate()),datepart(dd,getdate())
2 select datediff(dd,'2007-2-5',getdate())
Ⅷ 多给点SQL日期函数的应用举例说明,要收集。
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
select datediff(day,'2004-09-18','2004-09-01') --返回:-17
4. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')
函数 参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值
date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
参数 interval的设定值如下:
值 缩 写(Sql Server) (Access 和 ASP) 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于
Access和asp中,这些函数的用法也类似
举例:
1.GetDate() 用于sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天
3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
DatePart('d','2005-7-25 22:56:32')返回值为 25即25号
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年
具体的语法:
日期函数用来操作DATETIME 和SMALLDATETIME 类型的数据,执行算术运算。与其它函数一样,可以在
Select 语句的Select 和Where 子句以及表达式中使用日期函数。其使用方法如下:
日期函数参数,其中参数个数应不同的函数而不同。
·DAY()
DAY() 函数语法如下:
DAY (<date_expression>)
DAY() 函数返回date_expression 中的日期值。
·MONTH()
MONTH() 函数语法如下:
MONTH (<date_expression>)
MONTH() 函数返回date_expression 中的月份值。
与DAY() 函数不同的是,MONTH() 函数的参数为整数时,一律返回整数值1,即SQL Server 认为其
是1900 年1 月。
·YEAR()
YEAR() 函数语法如下:
YEAR (<date_expression>)
YEAR() 函数返回date_expression 中的年份值。
提醒:在使用日期函数时,其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范
围,否则会出现错误。
·DATEADD()
DATEADD() 函数语法如下:
DATEADD (<datepart>, <number>, <date>)
DATEADD() 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart
” 在日期函数中经常被使用,它用来指定构成日期类型数据的各组件,如年、季、月、日、星期等。
其取值如表4-9 所示:
·DATEDIFF()
DATEDIFF() 函数语法如下:
DATEDIFF() (<datepart>, <date1>, <date2>)
DATEDIFF() 函数返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其
结果值是一个带有正负号的整数值。针对不同的datepart, DATEDIFF()函数所允许的最大差距值不
一样,如:datepart 为second 时,DATEDIFF() 函数所允许的最大差距值为68: 年datepart 为
millisecond 时,DATEDIFF() 函数所允许的最大差距值为24 天20 小时30 分23 秒647 毫秒。
·DATENAME()
DATENAME() 函数语法如下:
DATENAME (<datepart>, <date)>
DATENAME() 函数以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
·DATEPART()
DATEPART() 函数语法如下:
DATEPART (<datepart>, <date>)
DATEPART() 函数以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
DATEPART (dd, date) 等同于DAY (date)
DATEPART (mm, date) 等同于MONTH (date)
DATEPART (yy, date) 等同于YEAR (date)
·GETDATE()
GETDATE() 函数语法如下:
GETDATE()
GETDATE() 函数以DATETIME 的缺省格式返回系统当前的日期和时间,它常作为其它函数或命令的参
数使用。
在开发数据库应用中,经常会遇到处理时间的问题,如查询指定时间的记录等。下面就这些常见的问题
,结合自己的一些经验,和大家探讨一下这类问题。
首先介绍一下,SQL Server里处理时间的几个主要函数的用法:
getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。
用法:getdate()
例子:
select getdate() as dte,dateadd(day,-1,getdate()) as nowdat
输出结果:
dte nowdat
1999-11-21 19:13:10.083 1999-11-20 19:13:10.083
(1 row(s) affected)
datepart()函数:以整数的形式返回时间的指定部分。
用法:datepart(datepart,date)
参数说明:datepart时要返回的时间的部分,常用取值year、month、day、hour、minute。
date是所指定的时间。
例子:
SELECT DATEPART(month, GETDATE()) AS 'Month Number'
输出结果:
Month Number
11
(1 row(s) affected)
dateadd()函数:通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。
用法:dateadd(datepart,number,date)
参数说明:datepart(同上)
date(同上)
number要增加的值,整型,可正可负,正值返回date之后的时间值,负值返回date
之前的时间值
例子:
select getdate() as today
select dateadd(day,-1,getdate())
select dateadd(day,1,getdate())
输出:
today
1999-11-21 19:42:41.410
(1 row(s) affected)
yesterday
1999-11-20 19:42:41.410
(1 row(s) affected)
tomorrow
1999-11-22 19:42:41.410
(1 row(s) affected)
datediff()函数:返回两个时间以指定时间部分来计算的差值。返回整数值。如1991-6-12和1991-6-21
之间以天
来算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9个月
用法:datediff(darepart,date1,date2)
参数说明:datepart(同上)
date1、date2(同上date)
例子:
select datediff(month,'1991-6-12','1992-6-21') as a