(1)、GETDATE() 函数从 SQL Server 返回当前的日期和时间。
下面是 SELECT 语句:
SELECT GETDATE() AS CurrentDateTime结果如下所示:
CurrentDateTime2008-11-11 12:45:34.243注释:上面的时间部分精确到毫秒。
(2)、
DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
date 参数是合法的日期表达式。datepart 参数可以是下列的值:
datepart缩写年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk, ww星期dw, w小时hh分钟mi, n秒ss, s毫秒ms微妙mcs纳秒ns假设我们有如下的 "Orders" 表:
OrderIdProductNameOrderDate1Jarlsberg Cheese2008-11-11 13:23:44.657下面是 SELECT 语句:
SELECT DATEPART(yyyy,OrderDate) AS OrderYear, DATEPART(mm,OrderDate) AS OrderMonth, DATEPART(dd,OrderDate) AS OrderDay, FROM Orders WHERE OrderId=1结果如下所示:
OrderYearOrderMonthOrderDay20081111(3)、DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
date 参数是合法的日期。format 规定日期/时间的输出格式。
可以使用的格式有:
格式描述%a缩写星期名%b缩写月名%c月,数值%D带有英文前缀的月中的天%d月的天,数值(00-31)%e月的天,数值(0-31)%f微秒%H小时(00-23)%h小时(01-12)%I小时(01-12)%i分钟,数值(00-59)%j年的天(001-366)%k小时(0-23)%l小时(1-12)%M月名%m月,数值(00-12)%pAM 或 PM%r时间,12-小时(hh:mm:ss AM 或 PM)%S秒(00-59)%s秒(00-59)%T时间, 24-小时(hh:mm:ss)%U周(00-53)星期日是一周的第一天%u周(00-53)星期一是一周的第一天%V周(01-53)星期日是一周的第一天,与 %X 使用%v周(01-53)星期一是一周的第一天,与 %x 使用%W星期名%w周的天(0=星期日, 6=星期六)%X年,其中的星期日是周的第一天,4 位,与 %V 使用%x年,其中的星期一是周的第一天,4 位,与 %v 使用%Y年,4 位%y年,2 位下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') DATE_FORMAT(NOW(),'%m-%d-%Y') DATE_FORMAT(NOW(),'%d %b %y') DATE_FORMAT(NOW(),'%d %b %Y %T:%f')结果如下所示:
Nov 04 2008 11:45 PM 11-04-2008 04 Nov 08 04 Nov 2008 11:45:34:243 (4)DATEADD() 函数在日期中添加或减去指定的时间间隔。date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:
DATEDIFF() 函数返回两个日期之间的天数。
datepart缩写年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk, ww星期dw, w小时hh分钟mi, n秒ss, s毫秒ms微妙mcs纳秒ns假设我们有如下的 "Orders" 表:
OrderIdProductNameOrderDate1Jarlsberg Cheese2008-11-11 13:23:44.657现在,我们想要向 "OrderDate" 添加 45 天,这样就可以找到付款日期。
我们使用下面的 SELECT 语句:
SELECT OrderId,DATEADD(day,45,OrderDate) AS OrderPayDate FROM Orders结果:
OrderIdOrderPayDate
1
2008-12-26 13:23:44.657
(5)DATEDIFF() 函数返回两个日期之间的天数。
(6)CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
下面的表格展示了 datetime 或 smalldatetime 转换为字符数据的 style 值:
值 (世纪 yy)值 (世纪 yyyy)输入/输出标准-0 or 100mon dd yyyy hh:miAM (or PM)Default1101mm/dd/yyUSA2102yy.mm.ddANSI3103dd/mm/yyBritish/French4104dd.mm.yyGerman5105dd-mm-yyItalian6106dd mon yy 7107Mon dd, yy 8108hh:mm:ss -9 or 109mon dd yyyy hh:mi:ss:mmmAM (or PM)Default+millisec10110mm-dd-yyUSA11111yy/mm/ddJapan12112yymmddISO-13 or 113dd mon yyyy hh:mi:ss:mmm (24h) 14114hh:mi:ss:mmm (24h) -20 or 120yyyy-mm-dd hh:mi:ss (24h) -21 or 121yyyy-mm-dd hh:mi:ss.mmm (24h) -126yyyy-mm-ddThh:mi:ss.mmm (no spaces)ISO8601-130dd mon yyyy hh:mi:ss:mmmAMHijiri-131dd/mm/yy hh:mi:ss:mmmAMHijiri下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:
CONVERT(VARCHAR(19),GETDATE()) CONVERT(VARCHAR(10),GETDATE(),10) CONVERT(VARCHAR(10),GETDATE(),110) CONVERT(VARCHAR(11),GETDATE(),6) CONVERT(VARCHAR(11),GETDATE(),106) CONVERT(VARCHAR(24),GETDATE(),113)结果如下所示:
Nov 04 2011 11:45 PM 11-04-11 11-04-2011 04 Nov 11 04 Nov 2011 04 Nov 2011 11:45:34:243
转载于:https://www.cnblogs.com/nxxshxf/p/5627385.html
