星星博客 »  > 

Sql 日期操作 获取年月日等

sql server 获取当前日期

1,获取当前日期

select getdate()

2,格式化

select convert(varchar,getdate(),120)

3,获取当前年

select datename(YYYY,getdate())
select datename(Year,getdate())
select datepart(YYYY,getdate())
select datepart(Year,getdate())

select year(时间字段名)

3,获取当前月 --05 或5

select datename(MM,getdate())    --04
select datename(Month,getdate())   --04
select datepart(MM,getdate())     --4
select datepart(Month,getdate())   --4

select Month(时间字段名)   --4

4,获取当前日期

select datename(day,getdate())   --05
select datename(d,getdate())    --05
select datename(dd,getdate())   --05

select datepart(dd,getdate())    5
select datepart(dd,getdate())    5
select datepart(day,getdate())   5

select day(时间字段名)

5,获取当前年月

select CONVERT(varchar(6),GETDATE(),112) -201804
select CONVERT(varchar(7),GETDATE(),120) --201804

6,获取当前年月日

select CONVERT(varchar(8),GETDATE(),112) --20180423
select CONVERT(varchar(10),GETDATE(),120) --2018-04-23

7.日期相关函数整理:

GETDATE() :获取当前时间,时间格式默认。

DATENAME:参数为两个,取值区间 interval 和时间 date

​ date 就是时间;

interval 包括 年,月,日,星期等

​ e.g:

​ YEAR 年;YYYY 年;YY 年;
​ QUARTER 季度;QQ 季度 ;Q 季度;
​ MONTH 月(04);MM 月(04);M 月(04);
​ WEEKDAY 星期几;DW 星期几;W 星期几;
​ WEEK 一年的第几周;WK 一年的第几周;WW 一年的第几周;ISOWK 一年的第几周;ISOWW 一年的第几周;ISO_WEEK 一年的第几周;
​ DAY 天;DD 天;D 天;
​ DAYOFYEAR 一年的第几天;DY 一年的第几天;Y 一年的第几天;
​ HOUR 小时;HH 小时;
​ MINUTE 分钟;MI 分钟;N 分钟;
​ SECOND 秒;SS 秒;S 秒;
​ MCS 微秒(略);MICROSECOND 微秒(略);MILLISECOND 毫秒(略);MS 毫秒(略) ; NANOSECOND 十亿分之一秒(略);NS 十亿分之一秒(略);

DATEPART:参数参考DATENAME,不过返回值不一样,DATENAME返回varchar,DATEPART返回int

CONVERT 函数转换格式:主要注意第三个参数 date_style ;格式:select CONVERT(varchar,GETDATE(),0)

​ 最后的 date_style 可以有 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,100,

​ 101,102,103,104,105,106,107,108,109,110,111,112,113,114,120,121,126,127,130,131等

​ 常用的 20,23,24,102,111,112,120等;

​ 示例:

    select CONVERT(varchar,GETDATE(),20)  --2018-04-23 14:44:22
    select CONVERT(varchar,GETDATE(),23)  --2018-04-23
    select CONVERT(varchar,GETDATE(),24)  --14:44:22
    select CONVERT(varchar,GETDATE(),102) --2018.04.23
    select CONVERT(varchar,GETDATE(),111) --2018/04/23
    select CONVERT(varchar,GETDATE(),112) --20180423

​ 字符串转日期:

select CONVERT(datetime,'2018-04-23',20) 

相关文章