将日期转换成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??
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|