我在将字符串('DD.MM.YYYY'格式)转换为Datetime('YYYY-MM-DD'格式)时遇到问题。您可以在下面看到相关示例和结果:
DECLARE @DATE date
DECLARE @RESULT datetime
SET @DATE = '12.04.2013' /* DD.MM.YYYY */
SET @RESULT = CONVERT(datetime,@DATE,104)
SELECT @RESULT
结果是:2013-12-04 00:00:00.000 in YYYY-MM-DD
问题是sql将@DATE变量的日期转换为@Result变量的月份。
有没有办法纠正这个?
谢谢
答案 0 :(得分:0)
试试这个
SELECT convert(datetime, '12.04.2013', 104)
或
您在代码中只需将datetime
变量的类型更改为varchar(15)
DECLARE @DATE varchar(15)--date
DECLARE @RESULT datetime
--because in below line if the variable type is datetime than value is get
--converted to datetime and consider 12 as month and 04 as day but if the
--variable type is varchar than this doent happen
SET @DATE = '12.04.2013' --/* DD.MM.YYYY */.
--now this will work as you need
SET @RESULT = CONVERT(datetime,@DATE,104)
答案 1 :(得分:0)
datetime
没有固有的格式,它只是一个带有值的日期时间。您必须将其转换为varchar
:
DECLARE @RESULT varchar(10)
SET @RESULT = CONVERT(varchar(10),@DATE,126)