在SQL中,有各种各样的日期时间格式,保存一份 Convert Date

来源:互联网 发布:绿茶软件园php源码 编辑:程序博客网 时间:2024/04/30 09:18

1.获取系统当前时间

select convert(varchar(10),getdate(),120)  --获取当前日期SELECT CONVERT(DATE,GETDATE(),110) --获取当前日期SELECT CONVERT(DATETIME,GETDATE(),110) --获取当前时间日期SELECT CONVERT(VARCHAR(50),GETDATE(),108)  --获取当前时刻

2.DateName ( datepart , date )返回表示指定日期的指定日期部分的字符串。

--今天是2009-2-24--星期二SELECT DATENAME(year, getdate()) AS 'Year Name' --------返回:2009SELECT DATENAME(Month, getdate()) AS 'Month Name' --获取当前年份(月、日、时、分、秒同理)SELECT DATENAME(weekday, getdate()) AS 'Weekday Name' --当前日期所在周几
3.DATEADD (datepart , number, date ),在向指定日期加上一段时间的基础上,返回新的 datetime 值

select DateAdd(MM,2,'2008-8-8') --------------返回:2008-10-08 00:00:00.000select DateAdd(dd,2,'2008-8-8') --------------返回:2008-08-10 00:00:00.000select dateadd(hh,-1,getdate()) --------------返回:2009-02-23 12:46:46.450,返回前一个小时的时间
--获取当前日期所在周的周一select dateadd(day, datepart(weekday,getdate()),getdate())--获取本周一日期SELECT CONVERT(DATE,DATEADD(wk, DATEDIFF(week,0,getdate()),0),110) --获取本周一日期

4.DATEDIFF ( date-part, date-expression-1, date-expression-2 )  返回两个日期之间的间隔。

  此函数计算两个指定日期之间日期部分的数目。结果为日期部分中等于(date2 - date1)的有符号的整数值。

SELECT datediff( hour, '4:00AM', '5:50AM' )---------------------------返回: 1SELECT datediff( month, '1987/05/02', '1995/11/15' )------------------返回: 102SELECT datediff( day, '00:00', '23:59' )------------------------------返回:0SELECT datediff( day,  '1999/07/19 00:00',  '1999/07/23 23:59' )------返回:4SELECT datediff( month, '1999/07/19', '1999/07/23' )------------------返回:0SELECT datediff( month, '1999/07/19', '1999/08/23' )------------------返回:1
实例:查询当天更新的数据 
select * from tableName where datediff(dd,F_EditTime,getdate())=0
5.DATEPART datepart ,date )返回代表指定日期的指定日期部分的整数。
--今天是2009-2-24 星期二SELECT DATEPART(year,getdate()) as 'Year'    --------返回:2009SELECT DATEPART(month,getdate()) as 'Month'   ---------返回:2SELECT DATEPART(weekday,getdate()) as 'Weekday' ---------返回:3,如:Sunday = 1、Saturday = 7SELECT DAY(getdate())             -----------------------返回:24
备注:DAY、MONTH、和 YEAR 函数分别是 DATEPART(dddate)、DATEPART(mmdate)、和 DATEPART(yydate) 的同义词。

以上转自


以下的文章主要描述的是SQL Server使用convert取得datetime日期数据的实际操作流程,在实际操作中用SQL Server数据库中用convert来获取datetime日期数据,以下实例包含各种日期格式的转换。

语句及查询结果:

  1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM  
  2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/0 

SQL Server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换

语句及查询结果:

  1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM  
  2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06  
  3. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16  
  4. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06  
  5. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06  
  6. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06  
  7. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06  
  8. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06  
  9. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46  
  10. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM  
  11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06  
  12. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16  
  13. Select CONVERT(varchar(100), GETDATE(), 12): 060516  
  14. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937  
  15. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967  
  16. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47  
  17. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157  
  18. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM  
  19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16  
  20. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47  
  21. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250  
  22. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM  
  23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006  
  24. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16  
  25. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006  
  26. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006  
  27. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006  
  28. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006  
  29. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006  
  30. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49  
  31. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM  
  32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006  
  33. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16  
  34. Select CONVERT(varchar(100), GETDATE(), 112): 20060516  
  35. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513  
  36. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547  
  37. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49  
  38. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700  
  39. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827  
  40. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM  
  41. Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM 

说明:

SQL Server使用convert:

  1. CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 

参数

expression

是任何有效的 Microsoft? SQL Server? 表达式。。

data_type

目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。

length

nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。

不带世纪数位 (yy) 带世纪数位 (yyyy)

标准

输入/输出**

- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)

1 101 美国 mm/dd/yyyy

2 102 ANSI yy.mm.dd

3 103 英国/法国 dd/mm/yy

4 104 德国 dd.mm.yy

5 105 意大利 dd-mm-yy

6 106 - dd mon yy

7 107 - mon dd, yy

8 108 - hh:mm:ss

- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10 110 美国 mm-dd-yy

11 111 日本 yy/mm/dd

12 112 ISO yymmdd

- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)

14 114 - hh:mi:ss:mmm(24h)

- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]

- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]

- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(不含空格)

- 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM

- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM

* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。

** 当转换为 datetime时输入;当转换为字符数据时输出。

*** 专门用于 XML。对于从 datetime或 smalldatetime 到 character 数据的转换,输出格式如表中所示。对于从 float、money 或 smallmoney 到 character 数据的转换,输出等同于 style 2。对于从 real 到 character 数据的转换,输出等同于 style 1。

****Hijri 是具有几种变化形式的日历系统,Microsoft? SQL Server? 2000 使用其中的科威特算法。

重要 默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。

SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。

当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 char 或 varchar 数据类型长度来截断不需要的日期部分。

以上的相关内容就是对SQL Server使用convert来取得datetime日期数据的介绍,望你能有所收获。


转自这里

0 0
原创粉丝点击