SQL Server日期格式的转换
sqlserver字符串转成日期格式
sqlserver字符串转成⽇期格式在SQL Server数据库中,SQL Server⽇期时间格式转换字符串可以改变SQL Server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。
本⽂我们主要就介绍⼀下SQL Server⽇期时间转字符串的相关知识,接下来就让我们⼀起来了解⼀下这部分内容。
字符串转⽇期时间:convert(datetime,列名)⽇期时间转字符串:1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613. Select CONVERT(varchar(100), GETDATE(), 12): 06051614. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634. Select CONVERT(varchar(100), GETDATE(), 112): 2006051635. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM在SQL数据库中,有⼀类函数是不得不提的,那就是SQL Server⽇期时间函数,这是SQL Server处理⽇期和时间最常⽤的函数,下⾯就将为介绍这类函数。
sql server中datetime格式转换
sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换语句及查询结果:Select CONV E RT(varchar(100), GE TDATE(), 0): 05 16 2006 10:57AMSelect CONV E RT(varchar(100), GE TDATE(), 1): 05/16/06Select CONV E RT(varchar(100), GE TDATE(), 2): 06.05.16Select CONV E RT(varchar(100), GE TDATE(), 3): 16/05/06Select CONV E RT(varchar(100), GE TDATE(), 4): 16.05.06Select CONV E RT(varchar(100), GE TDATE(), 5): 16-05-06Select CONV E RT(varchar(100), GE TDATE(), 6): 16 05 06Select CONV E RT(varchar(100), GE TDATE(), 7): 05 16, 06Select CONV E RT(varchar(100), GE TDATE(), 8): 10:57:46Select CONV E RT(varchar(100), GE TDATE(), 9): 05 16 2006 10:57:46:827AMSelect CONV E RT(varchar(100), GE TDATE(), 10): 05-16-06Select CONV E RT(varchar(100), GE TDATE(), 11): 06/05/16Select CONV E RT(varchar(100), GE TDATE(), 12): 060516Select CONV E RT(varchar(100), GE TDATE(), 13): 16 05 2006 10:57:46:937Select CONV E RT(varchar(100), GE TDATE(), 14): 10:57:46:967Select CONV E RT(varchar(100), GE TDATE(), 20): 2006-05-16 10:57:47Select CONV E RT(varchar(100), GE TDATE(), 21): 2006-05-16 10:57:47.157Select CONV E RT(varchar(100), GE TDATE(), 22): 05/16/06 10:57:47 AMSelect CONV E RT(varchar(100), GE TDATE(), 23): 2006-05-16Select CONV E RT(varchar(100), GE TDATE(), 24): 10:57:47Select CONV E RT(varchar(100), GE TDATE(), 25): 2006-05-16 10:57:47.250Select CONV E RT(varchar(100), GE TDATE(), 100): 05 16 2006 10:57AMSelect CONV E RT(varchar(100), GE TDATE(), 101): 05/16/2006Select CONV E RT(varchar(100), GE TDATE(), 102): 2006.05.16Select CONV E RT(varchar(100), GE TDATE(), 103): 16/05/2006Select CONV E RT(varchar(100), GE TDATE(), 104): 16.05.2006Select CONV E RT(varchar(100), GE TDATE(), 105): 16-05-2006Select CONV E RT(varchar(100), GE TDATE(), 106): 16 05 2006Select CONV E RT(varchar(100), GE TDATE(), 107): 05 16, 2006Select CONV E RT(varchar(100), GE TDATE(), 108): 10:57:49Select CONV E RT(varchar(100), GE TDATE(), 109): 05 16 2006 10:57:49:437AMSelect CONV E RT(varchar(100), GE TDATE(), 110): 05-16-2006Select CONV E RT(varchar(100), GE TDATE(), 111): 2006/05/16Select CONV E RT(varchar(100), GE TDATE(), 112): 20060516Select CONV E RT(varchar(100), GE TDATE(), 113): 16 05 2006 10:57:49:513Select CONV E RT(varchar(100), GE TDATE(), 114): 10:57:49:547Select CONV E RT(varchar(100), GE TDATE(), 120): 2006-05-16 10:57:49Select CONV E RT(varchar(100), GE TDATE(), 121): 2006-05-16 10:57:49.700Select CONV E RT(varchar(100), GE TDATE(), 126): 2006-05-16T10:57:49.827Select CONV E RT(varchar(100), GE TDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AMSelect CONV E RT(varchar(100), GE TDATE(), 131): 18/04/1427 10:57:49:920AM说明:使用CONV E RT:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )参数expression是任何有效的Microsoft? SQL Server? 表达式。
SQLServer日期时间格式转换字符串详解
SQLServer⽇期时间格式转换字符串详解在SQL Server数据库中,SQL Server⽇期时间格式转换字符串可以改变SQL Server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。
本⽂我们主要就介绍⼀下SQL Server⽇期时间转字符串的相关知识,接下来就让我们⼀起来了解⼀下这部分内容。
⽇期时间转字符串:1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613. Select CONVERT(varchar(100), GETDATE(), 12): 06051614. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634. Select CONVERT(varchar(100), GETDATE(), 112): 2006051635. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM在SQL数据库中,有⼀类函数是不得不提的,那就是SQL Server⽇期时间函数,这是SQL Server处理⽇期和时间最常⽤的函数,下⾯就将为介绍这类函数。
Sqlserver中对时间类型的字段转换
Sqlserver中对时间类型的字段转换获取当前⽇期利⽤ 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-dSELECT 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:mmmSELECT CONVERT(char(11),@dateTime,120)+CONVERT(char(12),@dateTime,114)------------------------------------------------------------------------------------------------2、⽇期推算处理DECLARE@dt datetimeSET@dt=GETDATE()DECLARE@number intSET@number=3 1.指定⽇期该年的第⼀天或最后⼀天 1.1 年的第⼀天SELECT CONVERT(char(5),@dt,120)+'1-1' 1.2 年的最后⼀天SELECT CONVERT(char(5),@dt,120)+'12-31' 2.指定⽇期所在季度的第⼀天或最后⼀天 2.1 季度的第⼀天SELECT CONVERT(datetime,CONVERT(char(8),DATEADD(Month,DATEPART(Quarter,@dt)*3-Month(@dt)-2,@dt),120)+'1') 2.2 季度的最后⼀天(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 2.3 季度的最后⼀天(直接推算法)SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1+DATEPART(Quarter,@dt)*3-Month(@dt),@dt),120)+'1') 3.指定⽇期所在⽉份的第⼀天或最后⼀天 3.1 ⽉的第⼀天SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1') 3.2 ⽉的最后⼀天SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1') 3.3 ⽉的最后⼀天(容易使⽤的错误⽅法)SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt)) 3.4 指定⽇期所在周的任意⼀天SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt) 5.指定⽇期所在周的任意星期⼏ 5.1 星期天做为⼀周的第1天SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt) 5.2 星期⼀做为⼀周的第1天SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)。
SQL日期转换
SQL Server 日期格式转换(Convert用法)2008-01-21 20:40SQL Server中,Convert可以将日期转换成不同格式,格式控制是由CONVERT (data_type[(length)], expression [, style])中的style来完成的。
下面列出了style取各种值时的效果:在表中,左侧的两列表示将datetime或smalldatetime转换为字符数据的style值。
给style值加 100,可获得包括世纪数位的四位年份 (yyyy)。
* 默认值(style0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。
** 当转换为datetime 时输入;当转换为字符数据时输出。
*** 专门用于 XML。
对于从datetime或smalldatetime到character数据的转换,输出格式如表中所示。
对于从float、money或smallmoney到character数据的转换,输出等同于style 2。
对于从real到character数据的转换,输出等同于style 1。
重要默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。
即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。
许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。
SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。
然而最安全的办法是指定四位数字年份。
当从smalldatetime转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。
当从datetime或smalldatetime值进行转换时,可以通过使用适当的char或varchar数据类型长度来截断不需要的日期部分。
SqlServer日期时间格式转换
SqlServer⽇期时间格式转换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(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AMSelect CONVERT(varchar(100), GETDATE(), 10): 05-16-06Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16Select CONVERT(varchar(100), GETDATE(), 12): 060516Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSelect CONVERT(varchar(100), GETDATE(), 23): 2006-05-16Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 101): 05/16/2006Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AMSelect CONVERT(varchar(100), GETDATE(), 110): 05-16-2006Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16Select CONVERT(varchar(100), GETDATE(), 112): 20060516Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AMSelect CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM说明:使⽤ CONVERT:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )参数expression是任何有效的 Microsoft® SQL Server™ 表达式。
SQL日期格式转换
--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
--输入的日期中指定世纪部分
SET @dt='01-2002-03'
SELECT @dt
--结果: 2002-01-03 00:00:00.000
--输入的日期中不指定世纪部分
如果希望将这些字段中转成一致的日期格式(如yyyy/mm/dd)
例如1988/1/1转成1988/01/01的话
请试着参考以下的语法…
SELECT CONVERT(varchar(10),CONVERT(datetime,employee_birthday,111),111)
FROM employee
--HH:MM:SS:mmm
Select Convert(varchar(12),Getdate(),114)
---------------------------------------------------------------------------------
如何用sql语言只获得数据库当前日期,且格式为"yyyy-mm-dd"?
下表列出了style参数的可用值及可以使用的各种日期格式。当同smalldatetime类型一起使用style参数时,那些包括秒和毫秒的格式将在其位值显示零。
类型值 标准 输出
0 Default mon dd yyyy hh:miAM
DECLARE @dt datetime
--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
SET @dt='010203'
sqlserver的Convert(Datetime)格式转换及常用的日期函数总结
sqlserver的Convert(Datetime)格式转换及常⽤的⽇期函数总结使⽤sql server的时候经常会⽤到把sql的时期类型转换成各种格式的字符串,我们都知道的Convert的最后⼀个参数是数字代表了不同的格式。
⼀、CONVERT参数调⽤格式:CONVERT(data_type,expression[,style])convert(varchar(10),字段名,转换格式)⼆、说明:此样式⼀般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才⽤到.SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06PMSELECT CONVERT(varchar(100), GETDATE(), 1) 07/15/09SELECT CONVERT(varchar(100), GETDATE(), 2) 09.07.15SELECT CONVERT(varchar(100), GETDATE(), 3) 15/07/09SELECT CONVERT(varchar(100), GETDATE(), 4) 15.07.09SELECT CONVERT(varchar(100), GETDATE(), 5) 15-07-09SELECT CONVERT(varchar(100), GETDATE(), 6) 15 07 09SELECT CONVERT(varchar(100), GETDATE(), 7) 07 15, 09SELECT CONVERT(varchar(100), GETDATE(), 8) 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 9) 07 15 2009 4:06:26:513PMSELECT CONVERT(varchar(100), GETDATE(), 10) 07-15-09SELECT CONVERT(varchar(100), GETDATE(), 11) 09/07/15SELECT CONVERT(varchar(100), GETDATE(), 12) 090715SELECT CONVERT(varchar(100), GETDATE(), 13) 15 07 2009 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 14) 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 20) 2009-07-15 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 21) 2009-07-15 16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 22) 07/15/09 4:06:26 PMSELECT CONVERT(varchar(100), GETDATE(), 23) 2009-07-15SELECT CONVERT(varchar(100), GETDATE(), 24) 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 25) 2009-07-15 16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 100) 07 15 2009 4:06PMSELECT CONVERT(varchar(100), GETDATE(), 101) 07/15/2009SELECT CONVERT(varchar(100), GETDATE(), 102) 2009.07.15SELECT CONVERT(varchar(100), GETDATE(), 103) 15/07/2009SELECT CONVERT(varchar(100), GETDATE(), 104) 15.07.2009SELECT CONVERT(varchar(100), GETDATE(), 105) 15-07-2009SELECT CONVERT(varchar(100), GETDATE(), 106) 15 07 2009SELECT CONVERT(varchar(100), GETDATE(), 107) 07 15, 2009SELECT CONVERT(varchar(100), GETDATE(), 108) 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 109) 07 15 2009 4:06:26:513PMSELECT CONVERT(varchar(100), GETDATE(), 110) 07-15-2009SELECT CONVERT(varchar(100), GETDATE(), 111) 2009/07/15SELECT CONVERT(varchar(100), GETDATE(), 112) 20090715SELECT CONVERT(varchar(100), GETDATE(), 113) 15 07 2009 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 114) 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 120) 2009-07-15 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 121) 2009-07-15 16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 126) 2009-07-15T16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 130) 23 1430 4:06:26:513PMSELECT CONVERT(varchar(100), GETDATE(), 131) 23/07/1430 4:06:26:513PM。
SqlServer 日期时间格式转换
CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/
CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
语句及查询结果:
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
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
sql server中的convert日期格式化大全
* 默认值(style0 或100、9 或109、13 或113、20 或120、21 或121)始终返回世纪数位(yyyy)。
** 当转换为datetime 时输入;当转换为字符数据时输出。
*** 专门用于XML。
对于从datetime或smalldatetime到character数据的转换,输出格式如表中所示。
对于从float、money或smallmoney到characte r数据的转换,输出等同于style2。
对于从real到character数据的转换,输出等同于style1。
重要默认情况下,SQL Server 根据截止年份2049 解释两位数字的年份。
即,两位数字的年份49 被解释为2049,而两位数字的年份50 被解释为1950。
许多客户端应用程序(例如那些基于OLE 自动化对象的客户端应用程序)都使用2030 作为截止年份。
SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改SQL Server 所使用的截止年份并对日期进行一致性处理。
然而最安全的办法是指定四位数字年份。
使用CONVERT:CONVERT (data_type[(length)], expression [, style])select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\-\,\\),\ \, \\),\:\,\\)20040912110608select CONVERT(varchar(12) , getdate(), 111 )2004/09/12select CONVERT(varchar(12) , getdate(), 112 )20040912select CONVERT(varchar(12) , getdate(), 102 )2004.09.12select CONVERT(varchar(12) , getdate(), 101 )09/12/2004select CONVERT(varchar(12) , getdate(), 103 )12/09/2004select CONVERT(varchar(12) , getdate(), 104 )12.09.2004select CONVERT(varchar(12) , getdate(), 105 )12-09-2004select CONVERT(varchar(12) , getdate(), 106 )12 09 2004select CONVERT(varchar(12) , getdate(), 107 )09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )11:06:08select CONVERT(varchar(12) , getdate(), 109 ) 09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 ) 09-12-2004select CONVERT(varchar(12) , getdate(), 113 ) 12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 ) 11:06:08.177。
sqlserver 字符串转时间 非标准格式
sqlserver 字符串转时间非标准格式在SQL Server中,我们经常遇到将字符串转换为日期和时间的需求。
通常情况下,SQL Server提供了标准的日期和时间格式转换函数,例如CONVERT和TRY_CONVERT。
但是有时候,我们可能会遇到非标准格式的日期和时间字符串,这时候我们需要使用其他方法来转换。
首先,让我们来了解一下SQL Server中的标准日期和时间格式,以便更好地理解非标准格式的转换。
在SQL Server中,标准的日期和时间格式包括以下几种:1. yyyy-MM-dd:年份-月份-日期2. dd/MM/yyyy:日期/月份/年份3. MM/dd/yyyy:月份/日期/年份4. yyyy-MM-dd HH:mm:ss:年份-月份-日期小时:分钟:秒5. yyyy-MM-ddTHH:mm:ss:年份-月份-日期THH:mm:ss这些是SQL Server中常用的标准日期和时间格式,可直接使用CONVERT函数将字符串转换为日期和时间类型。
例如,使用CONVERT函数将字符串'2022-01-01'转换为日期类型:```sqlSELECT CONVERT(DATE, '2022-01-01') AS ConvertedDate;```在这个例子中,我们使用CONVERT函数将字符串'2022-01-01'转换为DATE类型,并将结果命名为ConvertedDate。
然而,对于非标准格式的日期和时间字符串,我们需要使用一些其他的方法来进行转换。
在SQL Server中,我们可以使用CAST函数将字符串转换为日期和时间类型,但是它要求字符串的格式必须符合SQL Server的日期和时间格式。
如果字符串的格式不符合标准格式,我们可以使用SUBSTRING函数和字符串操作来提取日期和时间的各个部分,并使用这些部分来构建一个符合标准格式的字符串,然后再进行转换。
sql server 日期时间格式CONVERT转换
在客户端可以用tostring()方法进行格式化:datetime.now.tostring("d") 返回标准的日期格式。
datetime.now.tostring("yy年mm月dd日") 返回中文日期格式:09年04月13日datetime.now.tostring("hh:mm") 返回时间: 5:20参数可以随意组合,应该可以满足需求。
绑定时格式化:<%# eval("交易时间", "{0:yyyy年mm月dd日}").tostring()%><asp:boundfield datafield="msgtime" dataformatstring="{0:yyyy年mm月dd日}" headertext="日期" htmlencode="false" />htmlencode 属性一定为false 否则dataformatstring属性不生效。
(其它格式化也一样)sql server 数据库教程端格式化:执行sqlselect convert(varchar(100), 字段名, 0) from 表名查询结果05 16 2006 10:57am只需更改(varchar(100), 字段名, 0) 数字0,就可得到任何其它sql 内置样式以下是可得到的各种日期时间格式:select convert(varchar(100), getdate(), 0): 05 16 2006 10:57amselect convert(varchar(100), getdate(), 1): 05/16/06select convert(varchar(100), getdate(), 2): 06.05.16select convert(varchar(100), getdate(), 3): 16/05/06select convert(varchar(100), getdate(), 4): 16.05.06select convert(varchar(100), getdate(), 5): 16-05-06select convert(varchar(100), getdate(), 6): 16 05 06select convert(varchar(100), getdate(), 7): 05 16, 06select convert(varchar(100), getdate(), 8): 10:57:46select convert(varchar(100), getdate(), 9): 05 16 2006 10:57:46:827amselect convert(varchar(100), getdate(), 10): 05-16-06select convert(varchar(100), getdate(), 11): 06/05/16select convert(varchar(100), getdate(), 12): 060516select convert(varchar(100), getdate(), 13): 16 05 2006 10:57:46:937select convert(varchar(100), getdate(), 14): 10:57:46:967select convert(varchar(100), getdate(), 20): 2006-05-16 10:57:47select convert(varchar(100), getdate(), 21): 2006-05-16 10:57:47.157select convert(varchar(100), getdate(), 22): 05/16/06 10:57:47 amselect convert(varchar(100), getdate(), 23): 2006-05-16select convert(varchar(100), getdate(), 24): 10:57:47select convert(varchar(100), getdate(), 25): 2006-05-16 10:57:47.250select convert(varchar(100), getdate(), 100): 05 16 2006 10:57amselect convert(varchar(100), getdate(), 101): 05/16/2006select convert(varchar(100), getdate(), 102): 2006.05.16select convert(varchar(100), getdate(), 103): 16/05/2006select convert(varchar(100), getdate(), 104): 16.05.2006select convert(varchar(100), getdate(), 105): 16-05-2006select convert(varchar(100), getdate(), 106): 16 05 2006select convert(varchar(100), getdate(), 107): 05 16, 2006select convert(varchar(100), getdate(), 108): 10:57:49select convert(varchar(100), getdate(), 109): 05 16 2006 10:57:49:437amselect convert(varchar(100), getdate(), 110): 05-16-2006select convert(varchar(100), getdate(), 111): 2006/05/16select convert(varchar(100), getdate(), 112): 20060516select convert(varchar(100), getdate(), 113): 16 05 2006 10:57:49:513select convert(varchar(100), getdate(), 114): 10:57:49:547select convert(varchar(100), getdate(), 120): 2006-05-16 10:57:49select convert(varchar(100), getdate(), 121): 2006-05-16 10:57:49.700select convert(varchar(100), getdate(), 126): 2006-05-16t10:57:49.827select convert(varchar(100), getdate(), 130): 18 ???? ?????? 1427 10:57:49:907am可识别的几种常用格式模式:d 月中的某一天。
SQLServer日期函数及日期转换数据类型
SQLServer⽇期函数及⽇期转换数据类型⼀、统计语句1、--统计当前【>当天00点以后的数据】SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC2、--统计本周SELECT * FROM 表 WHERE datediff(week,[dateadd],getdate())=03、--统计本⽉SELECT * FROM 表 WHERE datediff(month,[dateadd],getdate())=04、统计当前SELECT * FROM 表 WHERE datediff(day,[dateadd],getdate())=0Select * From table with(nolock) Where Convert(varchar(10),[CreateTime],120) = Convert(varchar(10),getDate(),120)⼆、时间函数1、当前系统⽇期、时间select getdate()2、dateadd 在向指定⽇期加上⼀段时间的基础上,返回新的 datetime 值,例如:向⽇期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003、datediff 返回跨两个指定⽇期的⽇期和时间边界数select datediff(day,'2004-09-01','2004-09-18') --返回:174、datepart 返回代表指定⽇期的指定⽇期部分的整数SELECT DATEPART(month, '2004-10-15') --返回 105、datename 返回代表指定⽇期的指定⽇期部分的字符串SELECT datename(weekday, '2004-10-15') --返回:星期五6、day(), month(),year() --可以与datepart对照⼀下select 当前⽇期=convert(varchar(10),getdate(),120),select 当前时间=convert(varchar(8),getdate(),114),select datename(dw,'2004-10-15')select 本年第多少周=datename(week,'2004-10-15'),select 今天是周⼏=datename(weekday,'2004-10-15')7、求相差天数select datediff(day,'2004-01-01',getdate())8、⼀个⽉第⼀天的SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)9、本周的星期⼀SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)select dateadd(wk,datediff(wk,0,getdate()),6)10、⼀年的第⼀天SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)11、季度的第⼀天SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)12、当天的半夜SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)13、上个⽉的最后⼀天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))14、去年的最后⼀天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))15、本⽉的最后⼀天SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))16、本年的最后⼀天SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))17、本⽉的第⼀个星期⼀select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 18、查询本周注册⼈数select count(*) from [user]where datediff(week,create_day-1,getdate())=019、上周注册⼈数select count(*) from [user]where datediff(week,create_day-1,getdate())=120、本⽉注册⼈数select count(*) from [user]where datediff(month,create_day,getdate())=021、上⽉注册⼈数select count(*) from [user]where datediff(month,create_day,getdate())=1如果要效率,⽤⼀下⽅式22、查询本周注册⼈数select count(*) from [user]where create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112)) and create_day<dateadd(day,9-datepart(weekday,getdate()),convert(varchar,getdate(),112)) 23、上周注册⼈数select count(*) from [user]where create_day>=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112)) and create_day<dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112)) 24、本⽉注册⼈数select count(*) from [user]where create_day>=dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))and create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))) 25、上⽉注册⼈数select count(*) from [user]where create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))) and create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))26、本周select count(*) from Userwhere datediff(dd,create_day,getdate()) <= datepart(dw,getdate())27、上周select count(*) from Userwhere datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <= 728、本⽉select count(*) from Userwhere datepart(mm,create_day) = datepart(mm,getdate())29、上⽉select count(*) from Userwhere datepart(mm,create_day) = datepart(mm,getdate()) - 130、本周注册⼈数select count(*) from [User]where datediff(dd,create_day,getdate()) <= datepart(dw,getdate())31、上周注册⼈数select count(*) from [User]where datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <= 732、本⽉注册⼈数select count(*) from [User]where datepart(mm,create_day) = datepart(mm,getdate())33、上⽉注册⼈数select count(*) from [User]where datepart(mm,create_day) = datepart(mm,getdate()) - 134、查询今⽇所有SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC month(create_day)=month(getdate())本⽉month(create_day)=month(getdate())-1 上⽉今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=17天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=730天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30本⽉的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0系统函数:系统函数函数参数/功能GetDate( )返回系统⽬前的⽇期与时间DateDiff (interval,date1,date2)以interval 指定的⽅式,返回date2 与date1两个⽇期之间的差值 date2-date1DateAdd (interval,number,date)以interval指定的⽅式,加上number之后的⽇期DatePart (interval,date)返回⽇期date中,interval指定部分所对应的整数值DateName (interval,date)返回⽇期date中,interval指定部分所对应的字符串名称参数 interval的设定值:值缩写(Sql Server)Access 和 ASP说明Year Yy yyyy年 1753 ~ 9999Quarter Qq q季 1 ~ 4Month Mm m⽉1 ~ 12Day of yearDy y⼀年的⽇数,⼀年中的第⼏⽇ 1-366Day Dd d⽇,1-31Weekday Dw w⼀周的⽇数,⼀周中的第⼏⽇ 1-7Week Wk ww周,⼀年中的第⼏周 0 ~ 51Hour Hh h时0 ~ 23Minute Mi n分钟0 ~ 59Second Ss s秒 0 ~ 59Millisecond Ms-毫秒 0 ~ 999access 和 asp 中⽤date()和now()取得系统⽇期时间;其中DateDiff,DateAdd,DatePart也同是能⽤于Access和asp中,这些函数的⽤法也类似举例:1.GetDate() ⽤于sql server :select GetDate()2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期⼀(周⽇为1,周六为7)DatePart('d','2005-7-25 22:56:32')返回值为 25即25号DatePart('y','2005-7-25 22:56:32')返回值为 206即这⼀年中第206天DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年Sql 取当天或当⽉的记录表中的时间格式是这样的:2007-02-02 16:50:08.050, 如果直接和当天的时间⽐较,就总得不到准确数据,但是我们可以把这种格式的时间[格式化]成 2007-02-02,也就是只有年-⽉-⽇,然后把当天的时间也格式化成年-⽉-⽇的格式.这样,思路就出来了!我们格式化⽇期要⽤到 Convert()这个函数,要⽤到3个参数,⾸先来格式化当天的⽇期,Convert(varchar(10),getDate(),120)这样我们就可以把当天的⽇期格式化为: 2007-2-2,然后格式化数据库表中的⽇期Convert(varchar(10),TimeFiled,120),最后我们就可以⽤⼀条Sql语句得到当天的数据了.例如:转⾃⽹络程序代码Select * From VIEW_CountBill Where Convert(varchar(10),[time],120) = Convert(varchar(10),getDate(),120)注意:Convert()函数中的各个参数的意义,第⼀个参数,varchar(10)是⽬标系统所提供的数据类型,包括 bigint 和 sql_variant。
SQLServer日期查询时的日期格式转换
SQLServer日期查询时的日期格式转换问题提出:经常会有这样的查询要求,输入或者日历控件产生的日期格式为yyyy-mm-dd,而数据库中的字段是datetime类型,即yyyy-mm-dd hh:mm:ss。
如果简单的使用between语句或者=语句进行查询,查询结果可能是错误或者数据不全。
假设数据库中有2008-2-27 日的数据,但直接使用fielddate='2008-2-27' 或者使用 between '2008-2-27' and '2008-2-27'将不能查到该天的数据。
问题解决:使用SQL Server提供的Convert函数进行转换,由于2008-02-27最长是10位,所以使用如下语句convert(varchar(10),fielddate,121))进行转换,其中fielddate为数据表的字段名。
这样在查询时数据库得到参数后先自动将数据库内的信息转换为yyyy-mm-dd格式的10位字符,只要与参数相同即可返回查询结果.而convert中的121是指将 datetime类型转换为char类型时获得包括世纪位数的4位年份。
Convert函数的一些说明,以下资料来源于网络不带世纪数位 (yy)带世纪数位 (yyyy)标准输入/输出**-0 或100 (*) 默认值mon dd yyyy hh:miAM(或PM)1101美国mm/dd/yyyy2102ANSIyy.mm.dd3103英国/法国dd/mm/yy4104德国dd.mm.yy5105意大利dd-mm-yy6106-dd mon yy7107-mon dd, yy8108-hh:mm:ss-9 或 109 (*) 默认值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)10110美国mm-dd-yy11111日本yy/mm/dd12112ISOyymmdd-13 或 113 (*) 欧洲默认值+ 毫秒dd mon yyyy hh:mm:ss:mmm(24h)14114-hh:mi:ss:mmm(24h)-20 或120 (*) ODBC 规范yyyy-mm-dd hh:mm:ss[.fff]-21 或121 (*) ODBC 规范(带毫秒)yyyy-mm-ddhh:mm:ss[.fff]-126(***)ISO8601yyyy-mm-dd Thh:mm:ss:mmm (不含空格)-130*科威特dd mon yyyy hh:mi:ss:mmmAM-131*科威特dd/mm/yy hh:mi:ss:mmmAM* 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。
不一样的SQLServer日期格式化
不⼀样的SQLServer⽇期格式化不⼀样的 SQL Server ⽇期格式化Intro最近统计⼀些数据,需要按天/按⼩时/按分钟来统计,涉及到⼀些⽇期的格式化,⽹上看了⼀些⽂章⼤部分都是使⽤ CONVERT 来转换的,SQL Server 从2012 开始增加了 FORMAT ⽅法,可以使⽤ FORMAT 来格式化⽇期,更标准化,更具可定制性,⽽且和 C# ⾥的⽇期格式化差不多,可以直接把 C# ⾥⽇期的格式直接拿过来⽤FORMAT 介绍FORMAT 适⽤于数字和⽇期类型数据的格式化,其他数据类型不⽀持,其他类型数据转换请使⽤ CONVERT 和 CAST 去转换。
语法FORMAT ( value, format [, culture ] )value⽀持格式化的数据类型的表达式。
下表列出了 value 参数可接受的数据类型,其中还有相关的 .NET Framework 映射等效类型。
类别 | 类型 | .NET 类型数字 | BIGINT | Int64数字 | INT | Int32数字 | SMALLINT | Int16数字 | TINYINT | Byte数字 | Decimal | Decimal数字 | NUMERIC | Decimal数字 | FLOAT | double数字 | REAL | Single数字 | SMALLMONEY | Decimal数字 | money | Decimal⽇期和时间 | date | DateTime⽇期和时间 | time | TimeSpan⽇期和时间 | DATETIME | DateTime⽇期和时间 | smalldatetime | DateTime⽇期和时间 | datetime2 | DateTime⽇期和时间 | datetimeoffset | DateTimeOffsetformatnvarchar 格式模式。
format 参数必须包含⼀个有效的 .NET Framework 格式字符串,要么作为标准格式字符串(例如,“C”或“D”),要么作为⽇期值和数值的⾃定义字符模式(例如,“MMMM DD, yyyy (dddd)”)。
sqlserver中convert用法
sqlserver中convert用法
在SQLServer中,convert是一种将数据类型转换为另一种类型的函数。
它可以用于将日期时间类型转换为字符串类型,也可以用于将字符串类型转换为数值类型等。
convert函数的基本语法如下:
CONVERT ( data_type [ ( length ) ], expression, style ) 其中,data_type表示要转换的数据类型,length表示要转换的数据类型的长度,expression表示要转换的表达式,style表示要使用的转换格式。
例如,将日期时间类型转换为字符串类型可以使用如下语句:
SELECT CONVERT(VARCHAR(10), GETDATE(), 120)
其中,VARCHAR(10)表示要转换为字符串类型,GETDATE()表示要转换的日期时间类型,120表示转换格式为yyyy-mm-dd。
另外,convert函数也可以用于将字符串类型转换为数值类型。
例如,将字符串类型的数字转换为整型可以使用如下语句:
SELECT CONVERT(INT, '123')
其中,INT表示要转换为整型,'123'表示要转换的字符串类型的数字。
需要注意的是,在使用convert函数时,要保证要转换的数据类型是可以转换的,否则会出现转换失败的错误。
- 1 -。
sqlserver日期转换错误:Timestampformatmustbeyyyy-mm-。。。
sqlserver⽇期转换错误:Timestampformatmustbeyyyy-mm-。
今天⽤java开发sqlserver2008数据库时,将结果存⼊bean时报错Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff],后来发现,是数据库字段格式不对,⽇期格式应该使⽤datetiem,如果实在是⽤date类型,需要将其结果读取存⼊map集合中,在java前台通过dateformat转换后存⼊bean中即可。
如果服务器是CENTOS系统,则服务器的⽇期格式与数据库sqlserver的⽇期格式是不对应的,设计数据库时需要将datetime类型改为varchar类型,bean中对应的也需要改为String类型,保存时,将数据通过DataFormat转换/*属性 */private String ydid; //编码private RsEmployee jgbm; //⼈员编码private String ydlxbm; //异动类型编码private String ydxq; //异动学期private String ydsj; //异动时间private String ydsm; //异动说明private int lrr; //录⼊⼈private String lrsj; //录⼊时间private int buse; //是否可⽤ 0:不好⽤ 1:可⽤private int school_id;public String addSaveRSYd() throws Exception {//rsEmployeeyd.setYdid(0);HttpSession session = request.getSession();int school_id = Integer.parseInt(session.getAttribute("schoolid").toString());DateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date now = new Date();rsEmployeeyd.setJgbm(rsEmployeeyd.getJgbm());rsEmployeeyd.setYdlxbm(rsEmployeeyd.getYdlxbm());rsEmployeeyd.setLrsj(format.format(now));rsEmployeeyd.setYdsj(format.format(rsEmployeeyd.getYdsj()));rsEmployeeyd.setYdsm(rsEmployeeyd.getYdsm());rsEmployeeyd.setBuse(1);rsEmployeeyd.setSchool_id(school_id);rsEmployeeydService.addInfo(rsEmployeeyd);return SUCCESS;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server日期格式的转换
2004-09 余枫
SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm
例如:
select getdate()
2004-09-12 11:06:08.177
这对于在要不同数据库间转移数据或者习惯oracle日期格式YYYY-MM-DD HH24:MI:SS的人多少有些不方便.
我整理了一下SQL Server里面可能经常会用到的日期格式转换方法:
举例如下:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
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
更多的及具体说明请参考SQL Server的联机丛书.。