欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

SQL Server Convert DateTime格式的转换

程序员文章站 2022-04-09 13:29:12
...
 将sqlserver中table表的[datetime]字段值‘2011-11-07 16:41:35.033’ 改为‘2011-11-07 00:00:00‘去除了时分秒.[datetime]字段要为datetime类型的哦. UPDATE table SET [datetime]= Convert(char(11),[datetime],120)

  获取当前日期利用 convert 来转换成我们需要的datetime格式.

  select CONVERT(varchar(12) , getdate(), 112 )

  20040912

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 102 )

  2004.09.12

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 101 )

  09/12/2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 103 )

  12/09/2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 104 )

  12.09.2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 105 )

  12-09-2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 106 )

  12 09 2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 107 )

  09 12, 2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 108 )

  11:06:08

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 109 )

  09 12 2004 1

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 110 )

  09-12-2004

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 113 )

  12 09 2004 1

  ------------------------------------------------------------

  select CONVERT(varchar(12) , getdate(), 114 )

  11:06:08.177

  ------------------------------------------------------------

  declare @dateTime DateTime--定义一个datetime的变量

  set @dateTime=getdate(); --获取系统当前时间,并赋值给@dateTime字段

  --短日期格式:yyyy-m-d

  SELECT REPLACE(CONVERT(varchar(10),@dateTime,120),N'-0','-')

  --长日期格式:yyyy年mm月dd日

  SELECT STUFF(STUFF(CONVERT(char(8),@dateTime,112),5,0,N'年'),8,0,N'月')+N'日'

  --长日期格式:yyyy年m月d日

  SELECT DATENAME(Year,@dateTime)+N'年'+CAST(DATEPART(Month,@dateTime) AS varchar)+N'月'+DATENAME(Day,@dateTime)+N'日'

  --完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm

  SELECT CONVERT(char(11),@dateTime,120)+CONVERT(char(12),@dateTime,114)

  ------------------------------------------------------------------------------------------------

  2、日期推算处理

  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. 星期天做为一周的第1天

  SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

  --B. 星期一做为一周的第1天

  SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

相关标签: sql convert