sqlserver datetime转换成带格式的字符串

来源:互联网 发布:macbt下载软件 编辑:程序博客网 时间:2024/06/03 07:58
sqlserver datetime转换成带格式的字符串
sqlserver datetime转换成带格式的字符串,sqlserver datetime转换成固定格式的字符串,sqlserver datetime转换成字符串,sqlserver 时间类型与字符串之间的转换
我们在项目开发中经常用到sqlserver数据库,特别是在做.NET项目时更是首选sqlserver数据库;因为它们是一家嘛。在项目中时间与字符串之前的转换更是经常用到,普通的转换我想大家也都知道,但是当遇到一些转换成某种格式的字符串时就显得有点力不从心了,这一点我也感觉到了,用到的时候只能在网上找,又不太容易记住,所以我就搜集整理了一些 sqlserver DateTime转换的相关资料,放在我的网站里面,方便使用,也希望能帮助大家,如果大家有其它好用的,一定要留言告诉我哦,共同研究 www.2cto.com
系统当前时间:select getdate() as sysdate 输出结果:2012-12-20 16:14:30.200
select CONVERT(varchar(12),getdate(),100) as "100"
输出结果:12 20 2012
select CONVERT(varchar(12),getdate(),101) as "101"
输出结果:12/20/2012
select CONVERT(varchar(12),getdate(),102) as "102"
输出结果:2012.12.20
select CONVERT(varchar(12),getdate(),103) as "103" www.2cto.com
输出结果:20/12/2012
select CONVERT(varchar(12),getdate(),104) as "104"
输出结果:20.12.2012
select CONVERT(varchar(12),getdate(),105) as "105"
输出结果:20-12-2012
select CONVERT(varchar(12),getdate(),106) as "106"
输出结果:20 12 2012
select CONVERT(varchar(12),getdate(),107) as "107"
输出结果:12 20, 2012
select CONVERT(varchar(12),getdate(),108) as "108"
输出结果:16:14:30
select CONVERT(varchar(12),getdate(),109) as "109"
输出结果:12 20 2012
select CONVERT(varchar(12),getdate(),110) as "110"
输出结果:12-20-2012
select CONVERT(varchar(12),getdate(),111) as "111"
输出结果:2012/12/20
select CONVERT(varchar(12),getdate(),112) as "112"
输出结果:20121220
select CONVERT(varchar(12),getdate(),113) as "113"
输出结果:20 12 2012 1
select CONVERT(varchar(12),getdate(),114) as "114"
输出结果:16:14:30:200
--------------------------------------------------
1、格式化当前日期
DECLARE @DATETIME DATETIME --定义一个DATETIME的变量
set @DATETIME=getdate(); --获取系统当前时间,并赋值给@DATETIME字段
--短日期格式转换:yyyy-m-d
SELECT REPLACE(CONVERT(varchar(10),@DATETIME,120),N'-0','-')
输出结果:2012-12-20
--长日期格式转换:yyyy年mm月dd日
SELECT STUFF(STUFF(CONVERT(char(8),@DATETIME,112),5,0,N'年'),8,0,N'月')+N'日'
输出结果:2012年12月20日
--长日期格式转换:yyyy年m月d日
SELECT DATENAME(Year,@DATETIME)+N'年'+
CAST(DATEPART(Month,@DATETIME)AS varchar)+N'月'+
DATENAME(Day,@DATETIME)+N'日'
输出结果:2012年12月20日
--完整日期+时间格式转换:yyyy-mm-ddhh:mi:ss:mmm
SELECT CONVERT(char(11),@DATETIME,120)+CONVERT(char(12),@DATETIME,114)
输出结果:2012-12-20 16:18:22:423
-------------------------------------------------------------------------------
2、日期前后推算处理
DECLARE @DATETIME DATETIME --定义一个DATETIME的变量
DECLARE @NUMBER int
SET @DATETIME = GETDATE() --为当前DATETIME赋值
SET @NUMBER = 3
--1.指定日期所在周的任意星期几
--A.星期天做为一周的第1天
SELECT DATEADD(Day,@NUMBER-(DATEPART(Weekday,@DATETIME)+@@DATEFIRST-1)%7,@DATETIME) AS J
输出结果:2012-12-19 16:32:05.770
--B.星期一做为一周的第1天
SELECT DATEADD(Day,@NUMBER-(DATEPART(Weekday,@DATETIME)+@@DATEFIRST-2)%7-1,@DATETIME) AS K
输出结果:2012-12-19 16:32:05.770
--2.指定日期该年的第一天或最后一天
--A.年的第一天
SELECT CONVERT(char(5),@DATETIME,120)+'1-1' AS A
输出结果:2012-1-1
--B.年的最后一天
SELECT CONVERT(char(5),@DATETIME,120)+'12-31' AS B
输出结果:2012-12-31
--3.指定日期所在周的任意一天
SELECT DATEADD(Day,@NUMBER-DATEPART(Weekday,@DATETIME),@DATETIME) AS I
输出结果:2012-12-18 16:32:05.770
--4.指定日期所在季度的第一天或最后一天
--A.季度的第一天
SELECT CONVERT(DATETIME,CONVERT(char(8),DATEADD(Month,
DATEPART(Quarter,@DATETIME)*3-Month(@DATETIME)-2,@DATETIME),120)+'1') AS C
输出结果:2012-10-01 00:00:00.000
--B.季度的最后一天(CASE判断法)
SELECT CONVERT(DATETIME,CONVERT(char(8),DATEADD(Month,
DATEPART(Quarter,@DATETIME)*3-Month(@DATETIME),@DATETIME),120)+
CASE WHEN DATEPART(Quarter,@DATETIME)in(1,4) THEN '31' ELSE '30' END) AS D
输出结果:2012-12-31 00:00:00.000
--C.季度的最后一天(直接推算法)
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+
DATEPART(Quarter,@DATETIME)*3-Month(@DATETIME),@DATETIME),120)+'1') AS E
输出结果:2012-12-31 00:00:00.000
--5.指定日期所在月份的第一天或最后一天
--A.月的第一天
SELECT CONVERT(DATETIME,CONVERT(char(8),@DATETIME,120)+'1') AS F
输出结果:2012-12-01 00:00:00.000
--B.月的最后一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@DATETIME),120)+'1') AS G
输出结果:2012-12-31 00:00:00.000
原创粉丝点击