SQL set vs select在使用date / char时给出不同的结果

时间:2011-08-01 14:07:24

标签: mysql sql

我在MySQL中转换/编辑日期时遇到问题,如果我出现问题可能最简单:

INPUT:

declare @from_dattim2 datetime

set @from_dattim2 = (select dateadd(day,-30,'2011-07-18'))

print @from_dattim2

输出:

Jun 18 2011 12:00AM

这是有道理的,然后......

INPUT:

declare @from_dattim2 datetime

set @from_dattim2 = (select dateadd(day,-30,'2011-07-18'))

print @from_dattim2

select convert (datetime, @from_dattim2, 121)

输出:

2011-06-18 00:00:00.000

这是我想要的输出,但是当我尝试设置我的变量时它似乎不起作用:

INPUT:

declare @from_dattim2 datetime

set @from_dattim2 = (select dateadd(day,-30,'2011-07-18'))

set @from_dattim2 = convert (datetime, @from_dattim2, 121)

输出:

Jun 18 2011 12:00AM

如何将我的变量设置为yyyy-mm-dd等格式而不是Jun 18等?

1 个答案:

答案 0 :(得分:1)

转换不会导致日期时间以不同的方式存储。它只会影响输出时的格式。

因此,您只需将其存储为日期时间,并在选择数据时将其转换为所需的格式。