字符串到日期时出错在sql中转换

时间:2013-04-15 09:45:23

标签: sql

我在将字符串('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变量的月份。

有没有办法纠正这个?

谢谢

2 个答案:

答案 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)

Demo