今日在一本书中看到:
--更改日期格式为年/月/日的形式
SET DATEFORMAT ymd
--声明日期时间变量
DECLARE @datevar DATETIME
--按照年/月/日的形式为变量赋值
SET @datevar = '2007/10/09 11:25:5.123pm'
--显示变量的值
SELECT @datevar AS '时间显示'
我把ymd改成mdy、dmy等显示效果不变,我想知道是书中代码不对还是有其他的什么原因。
SET DATEFORMAT设置用于输入datetime或smalldatetime数据的日期部分(月/日/年)的顺序。仅用在将字符串转换为日期值时的解释中!
所以是:
SET DATEFORMAT ymd
SELECT CONVERT(datetime,'2007/10/09 11:25:5.123pm') AS '时间显示'
应该有效果了!
想要更多这方面的信息参考:http://book.csdn.net/bookfiles/128/1001284363.shtml
select convert(varchar(20),GETDATE(),120)
120这个参数可以替换成其他的,可以google一下不同参数代表的意思,
SET DATEFORMAT ymd
影响的是全部,如果后面有查询并不要你这样的格式就不好做了,所以一般取格式化的日期都是用convert来转换成varchar的。