sql日期处理以及转换

	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),@dt,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,
	CONVERT(char(8),
	DATEADD(Month,
	DATEPART(Quarter,@dt)*3-Month(@dt),
	@dt),
	120)
	+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
	THEN  '31 'ELSE  '30 ' END) 

	--C. 季度的最后一天(直接推算法)
	SELECT DATEADD(Day,-1,
	CONVERT(char(8),
	DATEADD(Month,
	1+DATEPART(Quarter,@dt)*3-Month(@dt),
	@dt),
	120)+ '1 ') 

	--3.指定日期所在月份的第一天或最后一天
	--A. 月的第一天
	SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+ '1 ') 

	--B. 月的最后一天
	SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+ '1 ') 

	--C. 月的最后一天(容易使用的错误方法)
	SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt)) 

	--4.指定日期所在周的任意一天
	SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt) 

	--5.指定日期所在周的任意星期几
	--A.  星期天做为一周的第天
	SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)[email protected]@DATEFIRST-1)%7,@dt) 

	--B.  星期一做为一周的第天
	SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)[email protected]@DATEFIRST-2)%7-1,@dt)

时间: 2024-10-09 23:57:38

sql日期处理以及转换的相关文章

Sql日期时间格式转换

Sql日期时间格式转换 sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select CONV

Sql日期时间格式转换大全

简介:我们经常会用到sql日期转换,这里列出了日期输出为字符串的所有代码 Sql日期时间格式转换: 输出格式 2014-06-12 Select CONVERT(varchar(100), GETDATE(), 23) 输出格式 2014-06-12 22:31:18 Select CONVERT(varchar(100), GETDATE(), 120) 以下是各种转换日期代码号: --------------------------------------------------------

Sql日期时间格式转换 备用

sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select CONVERT(varchar(

(转)Sql日期时间格式转换

sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/ 语句及查询结果:Select CONVERT(varchar(

Sql日期时间格式转换(转)

原文出自:http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/ CONVERT(varchar(10), 时间一, 23) 结果:2007-02-

Sql日期时间格式转换大全集,SQL加减一个月,加减一天,SQL时间格式转换。

语句及查询结果: 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(varc

sql 日期问题从周转换到日期

alter procedure p_date@year int=2005,    --年份@week int=33,    --第几周@firstday datetime =null output,  --此周的第一天@endday   datetime =null output   --此周的最后一天asdeclare @currentWeek int,@currentFirstday datetimeselect @currentWeek=datepart(week,getdate()), 

MYSQL \ PHP日期函数互相转换

MySQL 获得当前日期时间 函数 来源:http://www.cnblogs.com/ggjucheng/p/3352280.html 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+ MySQL 获得当前时间戳函数:current

SqlServer将日期格式DateTime转换成varchar类型

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),