SQL大全(很强大)第二部分

CONVERT在日期转换中的使用示例.sql:

SQL code
   
   
-- 字符转换为日期时,Style的使用 -- 1. Style=101时,表示日期字符串为:mm/dd/yyyy格式 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 /* == 日期转换为字符串 == */ DECLARE @dt datetime SET @dt = ' 2003-1-11 ' -- 1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式 SELECT CONVERT ( varchar , @dt , 101 ) -- 结果:01/11/2003 -- 2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式 SELECT CONVERT ( varchar , @dt , 103 ) -- 结果:11/01/2003 /* == 这是很多人经常犯的错误,对非日期型转换使用日期的style样式 == */ SELECT CONVERT ( varchar , ' 2003-1-11 ' , 101 ) -- 结果:2003-1-11


SET DATEFORMAT对日期处理的影响.sql

SQL code
   
   
-- 1. /* --说明 SET DATEFORMAT设置对使用CONVERT把字符型日期转换为日期的处理也具有影响 但不影响明确指定了style的CONVERT处理。 -- */ -- 示例 ,在下面的示例中,第一个CONVERT转换未指定style,转换的结果受SET DATAFORMAT的影响,第二个CONVERT转换指定了style,转换结果受style的影响。 -- 设置输入日期顺序为 日/月/年 SET DATEFORMAT DMY -- 不指定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 ) -- 结果: 2005-02-01 00:00:00.000 GO -- 2. /* --说明 如果输入的日期包含了世纪部分,则对日期进行解释处理时 年份的解释不受SET DATEFORMAT设置的影响。 -- */ -- 示例,在下面的代码中,同样的SET DATEFORMAT设置,输入日期的世纪部分与不输入日期的世纪部分,解释的日期结果不同。 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 ' SELECT @dt -- 结果: 2003-01-02 00:00:00.000 GO -- 3. /* --说明 如果输入的日期不包含日期分隔符,那么SQL Server在对日期进行解释时 将忽略SET DATEFORMAT的设置。 -- */ -- 示例,在下面的代码中,不包含日期分隔符的字符日期,在不同的SET DATEFORMAT设置下,其解释的结果是一样的。 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对日期处理的影响示例.sql

SQL code
   
   
-- 以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。 USE master -- 设置会话的语言环境为: English SET LANGUAGE N ' English ' SELECT DATENAME ( Month , GETDATE ()) AS [ Month ] , DATENAME (Weekday, GETDATE ()) AS [ Weekday ] , CONVERT ( varchar , GETDATE (), 109 ) AS [ CONVERT ] /* --结果: Month Weekday CONVERT ------------- -------------- ------------------------------- March Tuesday Mar 15 2005 8:59PM -- */ -- 设置会话的语言环境为: 简体中文 SET LANGUAGE N ' 简体中文 ' SELECT DATENAME ( Month , GETDATE ()) AS [ Month ] , DATENAME (Weekday, GETDATE ()) AS [ Weekday ] , CONVERT ( varchar , GETDATE (), 109 ) AS [ CONVERT ] /* --结果 Month Weekday CONVERT ------------- --------------- ----------------------------------------- 05 星期四 05 19 2005 2:49:20:607PM -- */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值