SQL日期格式转换

合集下载

sql时间格式转换大全

sql时间格式转换大全

Sqlserver中经常要操作一些时间类型的字段转换,我又不太记得住,所以搜集了以下的一些SqlserverConvert DateTime相关的资料发表在自己的小站里,方便自己以后要用的时候寻找,望对大家也有帮助.将sqlserver中table表的[datetime]字段值‘2007-11-07 16:41:35.033’ 改为‘2007-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-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.指定日期该年的第一天或最后一天--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天SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt) --B. 星期一做为一周的第1天SELECTDATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@d t)转自:/fengfage/blog/item/1429fda1b9ec3d9b46106453.html。

SQLServer日期与字符串之间的转换

SQLServer日期与字符串之间的转换

SQLServer⽇期与字符串之间的转换本⽂导读:在SQL Server数据库中,SQL Server⽇期时间格式转换字符串可以改变SQL Server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。

下⾯主要就介绍⼀下SQL Server⽇期时间转字符串的相关知识⼀、⽇期转换为字符串、⽇期格式1、使⽤函数CONVERT:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )2、参数expression :是任何有效的 sql 表达式。

data_type:⽬标系统所提供的数据类型,包括 bigint 和 sql_variant。

不能使⽤⽤户定义的数据类型。

length:nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。

style:⽇期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

3、通常⽤到的字符串转⽇期格式Select CONVERT(varchar(100), GETDATE(), 0): 0516200610: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): 160506Select CONVERT(varchar(100), GETDATE(), 7): 0516, 06Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46Select CONVERT(varchar(100), GETDATE(), 9): 0516200610: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): 1605200610:57:46:937Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-1610:57:47Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-1610:57:47.157Select CONVERT(varchar(100), GETDATE(), 22): 05/16/0610: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-1610:57:47.250Select CONVERT(varchar(100), GETDATE(), 100): 0516200610: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): 16052006Select CONVERT(varchar(100), GETDATE(), 107): 0516, 2006Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49Select CONVERT(varchar(100), GETDATE(), 109): 0516200610: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): 1605200610:57:49:513Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-1610:57:49Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-1610:57:49.700Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 142710:57:49:907AM Select CONVERT(varchar(100), GETDATE(), 131): 18/04/142710:57:49:920AM⼆、字符串转换为⽇期1、使⽤ CAST:CAST ( expression AS data_type )2、使⽤ CONVERT:CONVERT (data_type[(length)], expression [, style])3、例如Select cast('2009-01-01'as datetime)三、Sql Server⽇期与时间函数1、当前系统⽇期、时间:select getdate()2、dateadd 在向指定⽇期加上⼀段时间的基础上,返回新的 datetime 值例如:向⽇期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.0003、datediff 返回跨两个指定⽇期的⽇期和时间边界数。

SQL 修改为日期格式

SQL 修改为日期格式

引文:一般存入数据库中的时间格式为yyyy-mm-dd hh:mm:ss如果要转换为yyyy-mm-dd 短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明:使用CONVERT:CONVERT (data_type[(length)], expression[, style])参数expression是任何有效的Microsoft® SQL Server™ 表达式。

data_type目标系统所提供的数据类型,包括bigint和sql_variant。

不能使用用户定义的数据类型。

lengthnchar、nvarchar、char、varchar、binary或varbinary数据类型的可选参数。

style日期格式样式,借以将datetime或smalldatetime数据转换为字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型);或者字符串格式样式,借以将float、real、money或smallmoney数据转换为字符数据(nchar、nvarchar、char、varchar、nchar或nvarchar数据类型)。

SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将datetime或smalldatetime转换为字符数据的style值。

给style值加100,可获得包括世纪数位的四位年份(yyyy)。

* 默认值(style 0 或100、9 或109、13 或113、20 或120、21 或121)始终返回世纪数位(yyyy)。

** 当转换为datetime 时输入;当转换为字符数据时输出。

*** 专门用于XML。

对于从datetime或smalldatetime到character数据的转换,输出格式如表中所示。

对于从float、money或smallmoney到character数据的转换,输出等同于style 2。

sql日期时间函数+格式转换

sql日期时间函数+格式转换

sql⽇期时间函数+格式转换<⽇期时间函数>(可参考下列表格)转换函数to_date() 作⽤将字符类型按⼀定格式转化为⽇期类型:具体⽤法:to_date(‘2004-11-27’,’yyyy-mm-dd’),前者为字符串,后者为转换⽇期格式,注意,前后两者要以⼀对应。

如;to_date(‘2004-11-27 13:34:43’, ‘yyyy-mm-dd hh24:mi:ss’)多种⽇期格式:YYYY:四位表⽰的年份YYY,YY,Y:年份的最后三位、两位或⼀位,缺省为当前世纪MM:01~12的⽉份编号MONTH:九个字符表⽰的⽉份,右边⽤空格填补MON:三位字符的⽉份缩写WW:⼀年中的星期D:星期中的第⼏天DD:⽉份中的第⼏天DDD:年所中的第⼏天DAY:九个字符表⽰的天的全称,右边⽤空格补齐HH,HH12:⼀天中的第⼏个⼩时,12进制表⽰法HH24:⼀天中的第⼏个⼩时,取值为00~23MI:⼀⼩时中的分钟SS:⼀分钟中的秒SSSS:从午夜开始过去的秒数to_char():将⽇期转按⼀定格式换成字符类型SQL> select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) time from dual;1、常⽤⽇期⽅法(1)DATENAME ( datepart ,date )返回表⽰指定⽇期的指定⽇期部分的字符串。

SELECT DateName(day,Getdate()) –返回1(2)DATEPART ( datepart , date )返回表⽰指定⽇期的指定⽇期部分的整数。

SELECT DATEPART(year,Getdate()) –返回2016(3)DATEADD (datepart , number, date )返回给指定⽇期加上⼀个时间间隔后的新datetime 值。

SELECT DATEADD(week,1,GetDate()) –当前⽇期加⼀周后的⽇期(4)DATEDIFF ( datepart , startdate , enddate )返回跨两个指定⽇期的⽇期边界数和时间边界数。

SQL中将时间戳转为格式化日期后进行比较日期的方法

SQL中将时间戳转为格式化日期后进行比较日期的方法

SQL中将时间戳转为格式化日期后进行比较日期的方法在SQL中,可以使用函数将时间戳转换为格式化日期,然后进行日期的比较。

常用的函数有FROM_UNIXTIME(、DATE_FORMAT(和STR_TO_DATE(等。

下面详细介绍这些函数的用法。

2. DATE_FORMAT(函数:该函数可以将日期转换为指定的格式。

它需要两个参数:一个是日期,另一个是指定的日期格式字符串。

例如,DATE_FORMAT(date, format)可以将一个日期转换为指定格式的字符串。

其中,日期参数可以是一个日期、时间戳或日期时间字符串。

3. STR_TO_DATE(函数:该函数用于将字符串转换为日期。

它需要两个参数:一个是字符串,另一个是日期格式字符串。

例如,STR_TO_DATE(string, format)可以将一个字符串转换为指定格式的日期。

其中,字符串参数必须符合指定的日期格式。

下面是一个示例,演示如何使用以上函数将时间戳转换为日期,并进行日期的比较。

假设有一个名为orders的表,其中包含一个名为order_date的时间戳字段,并且需要筛选出所有日期大于或等于2024-01-01的订单。

```sqlSELECT*FROM ordersWHERE DATE(FROM_UNIXTIME(order_date)) >= '2024-01-01';```上述查询首先使用FROM_UNIXTIME(函数将order_date字段的时间戳转换为格式化的日期时间字符串。

然后,使用DATE(函数提取日期部分,并与指定的日期'2024-01-01'进行比较。

如果日期大于或等于指定日期,则返回对应的订单记录。

另外,如果order_date字段已经是格式化的日期字符串,可以直接使用STR_TO_DATE(函数将字符串转换为日期,并进行比较。

```sqlSELECT*FROM ordersWHERE STR_TO_DATE(order_date, '%Y-%m-%d') >= '2024-01-01';```在上述查询中,STR_TO_DATE(函数将order_date字段的字符串按照指定的日期格式'%Y-%m-%d'转换为日期,并与指定的日期'2024-01-01'进行比较。

postgres sql 中的 时间格式转化常识

postgres sql 中的 时间格式转化常识

在PostgreSQL中,可以使用日期和时间函数来转换时间格式。

以下是一些常见的转换常识:1. 转换为日期格式:```sqlSELECT TO_DATE('2023-07-19 10:30:00', 'YYYY-MM-DD HH24:MI:SS');```这将把字符串'2023-07-19 10:30:00'转换为日期格式。

'YYYY-MM-DD HH24:MI:SS'是日期字符串的模板,其中YYYY表示年份,MM表示月份,DD表示日期,HH24表示小时(24小时制),MI表示分钟,SS表示秒。

2. 转换为特定时间格式:```sqlSELECT TO_CHAR(NOW(), 'DD-MM-YYYY HH24:MI:SS');```这将把当前时间转换为'DD-MM-YYYY HH24:MI:SS'格式的字符串。

你可以根据需要调整时间格式模板。

3. 从日期格式转换为时间戳:```sqlSELECT TO_TIMESTAMP('2023-07-19 10:30:00', 'YYYY-MM-DD HH24:MI:SS');```这将把日期字符串'2023-07-19 10:30:00'转换为时间戳格式。

4. 从时间戳转换为日期格式:```sqlSELECT TO_DATE(1671363623, 'YYYYMMDDHH24MISS');```这将把时间戳1671363623转换为日期格式。

注意,这里的时间戳是十进制的。

这些是一些常见的转换示例,你可以根据具体需求使用适当的函数和模板进行时间格式的转换。

SQLServer中时间格式转换函数convert()的使用

SQLServer中时间格式转换函数convert()的使用

SQLServer中时间格式转换函数convert()的使⽤convert(varchar(10),字段名,转换格式)CONVERT为⽇期转换函数,⼀般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才⽤到;函数的3个参数:第1个参数为转换后的⼤;第2个为转换⽇期的字段或函数;第3个为转换的格式。

具体例⼦:SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2011 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/11SELECT CONVERT(varchar(100), GETDATE(), 2): 11.05.16SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/11SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.11SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-11SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 11SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 11SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2011 10:57:46:827AMSELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-11SELECT CONVERT(varchar(100), GETDATE(), 11): 11/05/16SELECT CONVERT(varchar(100), GETDATE(), 12): 110516SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2011 10:57:46:937SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967SELECT CONVERT(varchar(100), GETDATE(), 20): 2011-05-16 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 21): 2011-05-16 10:57:47.157SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/11 10:57:47 AMSELECT CONVERT(varchar(100), GETDATE(), 23): 2011-05-16SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 25): 2011-05-16 10:57:47.250SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2011 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2011SELECT CONVERT(varchar(100), GETDATE(), 102): 2011.05.16SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2011SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2011SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2011SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2011SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2011SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2011 10:57:49:437AMSELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2011SELECT CONVERT(varchar(100), GETDATE(), 111): 2011/05/16SELECT CONVERT(varchar(100), GETDATE(), 112): 20110516SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2011 10:57:49:513SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547SELECT CONVERT(varchar(100), GETDATE(), 120): 2011-05-16 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 121): 2011-05-16 10:57:49.700SELECT CONVERT(varchar(100), GETDATE(), 126): 2011-05-16T10:57:49.827SELECT CONVERT(varchar(100), GETDATE(), 130): 16 05 2011 10:57:49:513AMSELECT CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM⼀、sql server中的⽇期与时间函数1. GetDate( ) 返回系统⽬前的⽇期与时间select getdate()2.DateAdd (interval,number,date) 以interval指定的⽅式,向指定⽇期加上⼀段时间number,返回新的 datetime 值 例如:向⽇期加上2天select dateadd(day,2,'2010-10-15') --返回:2010-10-17 00:00:00.000以此类推:向⽇期倒推⼏天或⼏个⽉也是可以的。

SqlServer日期时间格式转换

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™ 表达式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SqlServer日期(convert函数,getdate函数)
函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。..类型0,9,和13总是返回四位的年。对其它类型,要显示世纪,把style值加上100。类型13和14返回24小时时钟的时间。类型0,7,和13返回的月份用三位字符表示(用Nov代表November).
USE master
--设置会话的语言环境为: English
SET LANGUAGE N'English'
SELECT
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]
要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒:
SELECT CONVERT(VARCHAR(30),GETDATE(),9)
注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间:
FROM employee
其它格式转换的范例如下:
--YYYY/MM/DD
Select Convert(varchar(10),Getdate(),111)
--YYYYMMDD
Select Convert(varchar(10),Getdate(),112)
--HH:MM:SS
Select Convert(varchar(8),Getdate(),108)
4 German dd.mm.yy
5 Italian dd-mm-yy
6 - dd mon yy
7 - mon dd,yy
8 - hh:mi:ss
9 Default + millisecondsR11;mon dd yyyy hh:mi:ss:mmmAM(or )
10 USA mm-dd-yy
11 JAPAN yy/mm/dd
下表列出了style参数的可用值及可以使用的各种日期格式。当同smalldatetime类型一起使用style参数时,那些包括秒和毫秒的格式将在其位值显示零。
类型值标准输出
0 Default mon dd yyyy hh:miAM
1 USA mm/dd/yy
2 ANSI yy.mm.dd
3 British/French dd/mm/yy
--结果: 2005-02-01 00:00:00.000
GO
--2.
/*--说明
如果输入的日期包含了世纪部分,则对日期进行解释处理时
年份的解释不受SET DATEFORMAT设置的影响。
--*/
--示例,在下面的代码中,同样的SET DATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。
--不指定Style参数的CONVERT转换将受到SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005')
--结果: 2005-01-02 00:00:00.000
--指定Style参数的CONVERT转换不受SET DATEFORMAT的影响
SELECT CONVERT(datetime,'2-1-2005',101)
简体中文OS:02 6 2007 4:33:56:530PM
英文OS:Nov 30 1997 3:29:55:170AM
convert函数中的style参数提供了datetime或smalldatetime转换到char或varchar的多种日期显示格式。Style的数字参数决定日期被如何显示。年可以被显示成两位数(yy),也可以显示成4位数(yyyy)。例如,将style参数赋值为100,可以得到一个4位的年号,即包括世纪值(yyyy).
DECLARE @dt datetime
--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
--输入的日期中指定世纪部分
SET @dt='01-2002-03'
SELECT @dt
--结果: 2002-01-03 00:00:00.000
--输入的日期中不指定世纪部分
SET @dt='01-02-03'
但不影响明确指定了style的CONVERT处理。
--*/
--示例,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SET DATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。
--设置输入日期顺序为日/月/年
SET DATEFORMAT DMY
SELECT CONVERT(varchar,@dt,103)
--结果:11/01/2003
/*==这是很多人经常犯的错误,对非日期型转换使用日期的style样式==*/
SELECT CONVERT(varchar,'2003-1-11',101)
--结果:2003-1-11
--1.
/*--说明
SET DATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响
SELECT CONVERT(datetime,'11/1/2003',101)
--结果:2003-11-01 00:00:00.000
--2. Style=101时,表示日期字符串为:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',103)
--结果:2003-01-11 00:00:00.000
有时侯在数据库的某些字段因特殊考虑的关系
这些字段是用char或nchar的格式来储存日期
如果希望将这些字段中转成一致的日期格式(如yyyy/mm/dd)
例如1988/1/1转成1988/01/01的话
请试着参考以下的语法…
SELECT CONVERT(varchar(10),CONVERT(datetime,employee_birthday,111),111)
DECLARE @dt datetime
--设置SET DATEFORMAT为:月日年
SET DATEFORMAT MDY
SET @dt='010203'
SELECT @dt
--结果: 2001-02-03 00:00:00.000
--设置SET DATEFORMAT为:日月年
SET DATEFORMAT DMY
SET @dt='010203'
SELECT @dt
--结果: 2001-02-03 00:00:00.000
--输入的日期中包含日期分隔符
SET @dt='01-02-03'
SELECT @dt
--结果: 2003-02-01 00:00:00.000
--以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。
/*--结果:
16:33:58,Feb 28, 2011
--*/
SELECT
DATENAME(Month,GETDATE()) AS [Month],
DATENAME(Weekday,GETDATE()) AS [Weekday],
CONVERT(varchar,GETDATE(),109) AS [CONVERT]
/*--结果
Month Weekday CONVERT
对表11.1中所列的每一种格式,你可以把类型值加上100来显示有世纪的年(例如,00年将显示为2000年)。例如,要按日本标准显示日期,包括世纪,你应使用如下的语句:
SELECT CONVERT(VARCHAR(30),GETDATE(),111)
在这个例子中,函数CONVERT()把日期格式进行转换,显示为1997/11/30
/*--结果:
Month Weekday CONVERT
------------- -------------- -------------------------------
March Tuesday Mar 15 2005 8:59PM
--*/
--设置会话的语言环境为:简体中文
SET LANGUAGE N'简体中文'
12 ISO yymmdd
13 Europe Default + millisecondsR11;dd mon yyyy hh:mi:ss:mmm(24h)
14 - hh:mi:ss:mmm(24h)
类型值前面加1,比如101则显示mm/dd/yyyy
---------------------------------------------------------------------------------
------------- --------------- -----------------------------------------
05星期四05 19 2005 2:49:20:607PM
--*/
--执行语句
SELECT CONVERT(VARCHAR(30),GETDATE(),108)+','+ CONVERT(VARCHAR(30),GETDATE(),107)
相关文档
最新文档