1

我在将字符串('DD.MM.YYYY' 格式)转换为日期时间('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 变量的月份。

有什么办法可以纠正这个吗?

谢谢

4

2 回答 2

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)
于 2013-04-15T09:48:09.850 回答
0

Adatetime没有固有的格式,它只是一个带值的日期时间。您必须将其转换为varchar

DECLARE @RESULT varchar(10)
SET @RESULT = CONVERT(varchar(10),@DATE,126)

演示

于 2013-04-15T09:50:27.877 回答