当前时间

语法说明

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
 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐