当前时间
语法说明
getdate,是一个函数术语,GETDATE() 函数从 SQL Server 返回当前的时间和日期。
SELECT getdate()
SELECT CONVERT(CHAR(10),getdate(),23)
SELECT CONVERT(CHAR(10),getdate(),112)
Select CONVERT(varchar(100), GETDATE(), 8)
Select CONVERT(varchar(100), GETDATE(), 24)
Select CONVERT(varchar(100), GETDATE(), 114)
常用代码收集
--- 本月的第一天
SELECT dateadd(mm,datediff(mm,0,getdate()-1),0)
SELECT CONVERT(CHAR(10),DATEADD(mm,DATEDIFF(mm,0,getdate()-1),0),23)
SELECT DATEADD(ms,-1,dateadd(mm,datediff(mm,0,getdate()),0))
--本月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) +' 23:59:59'
--上个月的第一天
select dateadd(m,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
--上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
---- 上上月最后一天
SELECT DATEADD(m,-1,dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0)))
------ 上上上月最后一天
SELECT dateadd(m,-1,dateadd(ms,-3,dateadd(mm,datediff(mm,0,getdate()),0)-day(dateadd(mm,datediff(mm,0,getdate()),0)-1)))
---上个月同期
SELECT dateadd(m,-1,getdate()-1)
--本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
--本周的周日
select dateadd(d,+6 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) )
--上周的星期一
select dateadd(d,-7 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) )
--上周的周日
select dateadd(d,-1 ,DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) )
--一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
-- 季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
--.去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
--本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
--本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
----今天0点
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
Datepart
---------语法说明
SELECT
--Datepart():返回代表指定日期的指定日期部分的整数
--语法:Datepart(datepart,date)
--返回类型:int
DATEPART(yyyy,getdate()) AS 年,DATEPART(qq,getdate()) AS 季,
DATEPART(mm,getdate()) AS 月, DATEPART(wk,getdate()) AS 周,
DATEPART(dw,getdate()) AS 星期, ----查询是星期几 (从星期日开始计算)
DATEPART(dd,getdate()) AS 日, DATEPART(dy,getdate()) AS 天,
DATEPART(hh,getdate()) AS 时, DATEPART(mi,getdate()) AS 分,
DATEPART(ss,getdate()) AS 秒, DATEPART(ms,getdate()) AS 毫秒
SELECT
getdate() AS 系统当前日期时间, CONVERT(date,getdate()-1,23) AS 日期
DateName
--DateName():返回代表指定日期的指定日期部分的字符串
--语法:DateName(datepart,date)
--返回类型:nvarchar
select
DateName(yyyy,getdate()) AS 年,DateName(qq,getdate()) AS 季,
DateName(mm,getdate()) AS 月, DateName(wk,getdate()) AS 周,
DateName(dw,getdate()) AS 星期, ----查询是星期几 (从星期一开始计算)
DATENAME(dd,getdate()) AS 日, DATENAME(dy,getdate()) AS 天,
DateName(hh,getdate()) AS 时, DateName(mi,getdate()) AS 分,
DateName(ss,getdate()) AS 秒, DateName(ms,getdate()) AS 毫秒
DATEADD
----- 1、定义
DATEADD() 函数在日期中添加或减去指定的时间间隔。
------2、语法
DATEADD(datepart,number,date)
--date 参数是合法的日期表达式。number 是您希望添加的间隔数;
---对于未来的时间,此数是正数,对于过去的时间,此数是负数。
---年 year,yy,yyyy
---季度 quarter,qq,q
---月 MONTH,mm,m
---一年中的第几天 dayofyear,dy, y
--日 day,dd, d
---一年中的第几周 week,wk, ww
----星期几 weekday dw
---小时 Hour hh
---分钟 minute,mi, n
---- 秒 second,ss, s
---毫秒 millisecond ms
-----微妙 mcs
-----纳秒 ns
SELECT '现在是 '+convert(varchar(4),DATEPART(year, getdate()))+'年'+
convert(varchar(2),DATEPART(month, getdate()))+'月'+
convert(varchar(2),DATEPART(Day, getdate()))+'日 '+datename(dw,getdate())+
' 第'+convert(varchar(1),DATEPART(quarter,getdate()) )+'季度'+
' 第'+datename(week,getdate())+'周 '+
convert(varchar(2),DATEPART(hh, getdate()))+' 时 '+
convert(varchar(2),DATEPART(mi, getdate()))+' 分 '+
convert(varchar(2),DATEPART(ss, getdate()))+' 秒 '+
convert(varchar(3),DATEPART(ms, getdate()))+' 毫秒'
AS 时间
DATEDIFF
-------------DATEDIFF定义和用法
DATEDIFF() 函数返回两个日期之间的时间。
-----语法
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。
--------datepart 参数可以是下列的值:
datepart 缩写
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小时 hh
分钟 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
纳秒 ns
-----示例 月份差
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate
SELECT DATEDIFF(month,'2018-1-01',getdate())
---下面示例的语句返回 1:
SELECT datediff( hour, '4:00', '5:50' )
--下面的语句返回 102:
SELECT datediff( month, '1987/05/02', '1995/11/15' )
---下面的语句返回 0:
SELECT datediff( day, '00:00', '23:59' )
--下面的语句返回 4:
SELECT datediff( day,'1999/07/19 00:00','1999/07/23 23:59' )
--下面的语句返回 0:
SELECT datediff( month, '1999/07/19', '1999/07/23' )
----下面的语句返回 1:
SELECT datediff( month, '1999/07/19', '1999/08/23' )
CONVERT日期格式转换
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 121): 2006
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM