SQL获取年月日方法

来源:互联网 发布:指南针软件怎么使用 编辑:程序博客网 时间:2024/06/13 02:55

方法一:利用DATENAME

在SQL数据库中,DATENAME(datetype,date)函数的作用是从日期中提取指定部分数据,其返回类型是nvarchar.datetype类型见附表1.

SELECT DATENAME(year,GETDATE())+'-'+ DATENAME(MONTH,GETDATE())+'-'+ DATENAME(DAY,GETDATE())SELECT DATENAME(yyyy,GETDATE())+'-'+ DATENAME(MM,GETDATE())+'-'+ DATENAME(dd,GETDATE())

方法二:利用CONVERT

CONVERT(type(length),date,style) 函数是把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间数据。style类型见附表2,另附件3为CONVERT()用法

SELECT CONVERT(VARCHAR(20),YEAR(GETDATE())) +'-'+ CONVERT(VARCHAR(20),MONTH(GETDATE()))+'-'+ CONVERT(VARCHAR(20),DAY(GETDATE()))SELECT CONVERT(VARCHAR(20),GETDATE(),23)

下面说两种不能错误方法:

SELECT  YEAR(GETDATE()) +'-'+  MONTH(GETDATE()) +'-'+  DAY(GETDATE()) SELECT DATEPART(yyyy,GETDATE())+'-'+ DATEPART(MM,GETDATE())+'-'+ DATEPART(dd,GETDATE())

因为YEAR(),MONTH(),DAY(),DATEPART()返回值都是INT类型,所以结果是相加

附表1

日期部分
缩写yearyy, yyyy        quarterqq, qmonthmm,mdayofyeardy, ydaydd,dweekwk,wwweeekdaydwhourhhminutemi,nsecondss,smillisecondms

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

附表2

style(2位表年份)  style(4位表年份)       Style 格式 100或0mon dd yyyy hh:miAM (或者 PM)1101 美国mm/dd/yy2102 ANSIyy.mm.dd3103 英法dd/mm/yy4104 德国dd.mm.yy5105 意大利dd-mm-yy6106dd mon yy7107Mon dd, yy 108或8或24hh:mm:ss(无年份月日) 109或9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)   10110 美国mm-dd-yy     11111 日本yy/mm/dd12112 ISOyymmdd 113或13 欧洲默认dd mon yyyy hh:mm:ss:mmm(24h)14114hh:mi:ss:mmm(24h)(无年份月日) 120或20 ODBCyyyy-mm-dd hh:mi:ss(24h) 121或21或25yyyy-mm-dd hh:mi:ss.mmm(24h) 23yyyy-mm-dd 126yyyy-mm-ddThh:mm:ss.mmm(没有空格) 130dd mon yyyy hh:mi:ss:mmmAM 131dd/mm/yy hh:mi:ss:mmmAM

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

附件3 CONVERT()用法

SELECT CONVERT(varchar(100), GETDATE(), 0)--  08 25 2017 10:26AMSELECT CONVERT(varchar(100), GETDATE(), 100)--08 25 2017 10:26AMSELECT CONVERT(varchar(100), GETDATE(), 1)--  08/25/17SELECT CONVERT(varchar(100), GETDATE(), 101)--08/25/2017SELECT CONVERT(varchar(100), GETDATE(), 2)--  17.08.25SELECT CONVERT(varchar(100), GETDATE(), 102)--2017.08.25SELECT CONVERT(varchar(100), GETDATE(), 3)--  25/08/17SELECT CONVERT(varchar(100), GETDATE(), 103)--25/08/2017SELECT CONVERT(varchar(100), GETDATE(), 4)--  25.08.17SELECT CONVERT(varchar(100), GETDATE(), 104)--25.08.2017SELECT CONVERT(varchar(100), GETDATE(), 5)--  25-08-17SELECT CONVERT(varchar(100), GETDATE(), 105)--25-08-2017SELECT CONVERT(varchar(100), GETDATE(), 6)--  25 08 17SELECT CONVERT(varchar(100), GETDATE(), 106)--25 08 2017SELECT CONVERT(varchar(100), GETDATE(), 7)--  08 25, 17SELECT CONVERT(varchar(100), GETDATE(), 107)--08 25, 2017SELECT CONVERT(varchar(100), GETDATE(), 8)--  10:25:11SELECT CONVERT(varchar(100), GETDATE(), 108)--10:25:11SELECT CONVERT(varchar(100), GETDATE(), 9)--  08 25 2017 10:25:54:397AMSELECT CONVERT(varchar(100), GETDATE(), 109)--08 25 2017 10:25:54:397AMSELECT CONVERT(varchar(100), GETDATE(), 10)-- 08-25-17SELECT CONVERT(varchar(100), GETDATE(), 110)--08-25-2017SELECT CONVERT(varchar(100), GETDATE(), 11)-- 17/08/25SELECT CONVERT(varchar(100), GETDATE(), 111)--2017/08/25SELECT CONVERT(varchar(100), GETDATE(), 12)-- 170825SELECT CONVERT(varchar(100), GETDATE(), 112)--20170825SELECT CONVERT(varchar(100), GETDATE(), 13)-- 25 08 2017 10:30:25:533SELECT CONVERT(varchar(100), GETDATE(), 113)--25 08 2017 10:30:25:533SELECT CONVERT(varchar(100), GETDATE(), 14)-- 10:31:18:553SELECT CONVERT(varchar(100), GETDATE(), 114)--10:31:18:553SELECT CONVERT(varchar(100), GETDATE(), 20)-- 2017-08-25 10:31:18SELECT CONVERT(varchar(100), GETDATE(), 120)--2017-08-25 10:31:18SELECT CONVERT(varchar(100), GETDATE(), 21)-- 2017-08-25 10:32:22.950SELECT CONVERT(varchar(100), GETDATE(), 121)--2017-08-25 10:32:22.950SELECT CONVERT(varchar(100), GETDATE(), 22)-- 08/25/17 10:32:22 AMSELECT CONVERT(varchar(100), GETDATE(), 23)-- 2017-08-25SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 8)--  10:25:11SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 108)--10:25:11SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 24)-- 10:33:38SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 21)-- 2017-08-25 10:32:22.950SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 121)--2017-08-25 10:32:22.950SELECT CONVERT(varchar(100), DATEADD(hh,12,GETDATE()), 25)-- 2017-08-25 10:33:49.947SELECT CONVERT(varchar(100), GETDATE(), 126)--2017-08-25T10:34:39.913SELECT CONVERT(varchar(100), GETDATE(), 130)--3 ?? ????? 1438 10:34:52:140AMSELECT CONVERT(varchar(100), GETDATE(), 131)--3/12/1438 10:35:01:460AM

 

原创粉丝点击