1、获取当前日期:
SELECT getdate()
2、Style ID Style 格式
Style ID Style 格式
================================
100 或者 0 mm dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mm dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mm yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mm yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM
例子:
(1)显示结果 : 2018-08-18
select convert(varchar(10),'2018-08-12 12:00:00',112) as date_type;
(2)显示结果 : 20180818
select convert(varchar(10),getdate(),112) as date_type;
(3)显示结果 : 2018-08-18
select convert(varchar(10),getdate(),120) as date_type;
(4)显示结果 : 2018-08-18 18:08:28
select convert(varchar(20),getdate(),120) as date_type;
3、DATEADD()函数:
1. 使用详解
DATEADD()
说明:在日期中添加或减去指定的时间间隔。
语法:
DATEADD(datepart,number,date)
datepart | 值 |
年份(year) | yy , yyyy , year |
季度(quarter) | qq , q , quarter |
月份(month) | mm , m , month |
年中的日(day of year) | dy, y |
日(day) | dd , d , day |
周(week) | wk , ww , week |
星期(weekday) | dw, w |
小时(hour) | hh , hour |
分钟(minute) | mi , n , minute |
秒(second) | ss , s , second |
毫秒(millisecond | ms |
微秒(microsecond) | mcs |
纳秒(nanosecond) | ns |
例:
加8小时
SELECT dateadd(hh,8,GETDATE())
加1天
SELECT dateadd(d,1,GETDATE())
当月天数
SELECT DAY(EOMONTH(GETDATE()))
当月第一天
Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
100个月后当月的第一天
Select dateadd( m, 100,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) )
4、当月日期表:
SELECT CONVERT (VARCHAR (10), dateadd(dd,number, dateadd(dd,-day(getdate())+1,getdate())),120) AS 日期表,
datepart(weekday, dateadd(dd,number, dateadd(dd,-day(getdate())+1,getdate())) ) AS 星期几
FROM master..spt_values n
WHERE n.type = 'p'
and number<datediff(day,dateadd(dd,-day(getdate())+1,getdate()),dateadd(mm,+1,dateadd(dd,-day(getdate())+1,getdate())))
5、近一个月日期表:
SELECT CONVERT(VARCHAR(10),dateadd(dd,-number, getdate()) ,120) AS 日期表
FROM master..spt_values n
WHERE n.type = 'p' and number<=31
附:Date 数据类型
数据类型 | 描述 | 样式 | 存储 |
date | 仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。 | 2020-04-15 | 3 bytes |
time | 仅存储时间。精度为 100 纳秒。 | 13:23:22.5333333 | 3-5 bytes |
datetime | 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日 | 2020-04-15 13:24:16.920 | 8 bytes |
精度为 3.33 毫秒。 | |||
datetime2 | 从 1753 年 1 月 1 日 到 9999 年 12 月 31 日 | 2020-04-15 13:26:07.8100000 | 6-8 bytes |
精度为 100 纳秒。( datetime的升级版 ) | |||
smalldatetime | 从 1900 年 1 月 1 日 到 2079 年 6 月 6 日 | 2020-04-15 13:27:00 | 4 bytes |
精度为 1 分钟。 | |||
datetimeoffset | 与 datetime2 相同 | 2020-04-15 13:28:01.3133333 +00:00 | 8-10 bytes |
外加时区偏移。 | |||
timestamp | 存储唯一的数字,每当创建或修改某行时,该数字会更新。 | 0x0000000000000FA0 | |
timestamp 基于内部时钟,不对应真实时间。 | |||
每个表只能有一个 timestamp 变量。( 时间戳 ) |