将日期转换成int
DECLARE @d DATETIME
DECLARE @n INT
SET @d = '2007-08-01 12:00:00'
SET @n = CAST(@d AS INT)
SELECT @d,@n,CAST(@n AS DATETIME)
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期该年的第一天或最后一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最后一天
SELECT CONVERT(char(5),120)+'12-31'
--2.指定日期所在季度的第一天或最后一天
--A. 季度的第一天
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')
--B. 季度的最后一天(CASE判断法)
SELECT CONVERT(datetime,@dt)*3-Month(@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)
--C. 季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,
1+DATEPART(Quarter,
120)+'1')
--3.指定日期所在月份的第一天或最后一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),120)+'1')
--B. 月的最后一天
SELECT DATEADD(Day,DATEADD(Month,1,@dt),120)+'1')
--C. 月的最后一天(容易使用的错误方法)
SELECT DATEADD(Month,DATEADD(Day,-DAY(@dt),@dt))
--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt)
--5.指定日期所在周的任意星期几
--A. 星期天做为一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFirsT-1)%7,@dt)
--B. 星期一做为一周的第1天
SELECT DATEADD(Day,@dt)+@@DATEFirsT-2)%7-1,@dt)
上个月的第一天
SELECT DATEADD(mm,DATEDIFF(mm,getdate())-1,0)
上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm,getdate()),0))
==================================================
日期的格式化操作
- Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
- Select CONVERT(varchar(100), 1): 05/16/06
- Select CONVERT(varchar(100), 2): 06.05.16
- Select CONVERT(varchar(100), 3): 16/05/06
- Select CONVERT(varchar(100), 4): 16.05.06
- Select CONVERT(varchar(100), 5): 16-05-06
- Select CONVERT(varchar(100), 6): 16 05 06
- Select CONVERT(varchar(100), 7): 05 16, 06
- Select CONVERT(varchar(100), 8): 10:57:46
- Select CONVERT(varchar(100), 9): 05 16 2006 10:57:46:827AM
- Select CONVERT(varchar(100), 10): 05-16-06
- Select CONVERT(varchar(100), 11): 06/05/16
- Select CONVERT(varchar(100), 12): 060516
- Select CONVERT(varchar(100), 13): 16 05 2006 10:57:46:937
- Select CONVERT(varchar(100), 14): 10:57:46:967
- Select CONVERT(varchar(100), 20): 2006-05-16 10:57:47
- Select CONVERT(varchar(100), 21): 2006-05-16 10:57:47.157
- Select CONVERT(varchar(100), 22): 05/16/06 10:57:47 AM
- Select CONVERT(varchar(100), 23): 2006-05-16
- Select CONVERT(varchar(100), 24): 10:57:47
- Select CONVERT(varchar(100), 25): 2006-05-16 10:57:47.250
- Select CONVERT(varchar(100), 100): 05 16 2006 10:57AM
- Select CONVERT(varchar(100), 101): 05/16/2006
- Select CONVERT(varchar(100), 102): 2006.05.16
- Select CONVERT(varchar(100), 103): 16/05/2006
- Select CONVERT(varchar(100), 104): 16.05.2006
- Select CONVERT(varchar(100), 105): 16-05-2006
- Select CONVERT(varchar(100), 106): 16 05 2006
- Select CONVERT(varchar(100), 107): 05 16, 2006
- Select CONVERT(varchar(100), 108): 10:57:49
- Select CONVERT(varchar(100), 109): 05 16 2006 10:57:49:437AM
- Select CONVERT(varchar(100), 110): 05-16-2006
- Select CONVERT(varchar(100), 111): 2006/05/16
- Select CONVERT(varchar(100), 112): 20060516
- Select CONVERT(varchar(100), 113): 16 05 2006 10:57:49:513
- Select CONVERT(varchar(100), 114): 10:57:49:547
- Select CONVERT(varchar(100), 120): 2006-05-16 10:57:49
- Select CONVERT(varchar(100), 121): 2006-05-16 10:57:49.700
- Select CONVERT(varchar(100), 126): 2006-05-16T10:57:49.827
- Select CONVERT(varchar(100), 130): 18 ???? ?????? 1427 10:57:49:907AM
- Select CONVERT(varchar(100), 131): 18/04/1427 10:57:49:920AM
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。