我想将整列转换为yyyymmdd的日期格式,我不想要当前的日期

时间:2014-04-15 18:23:12

标签: sql sql-server database date

我想将整列转换为yyyymmdd的日期格式,我不想要当前日期,因此我无法使用getdate()命令,列中已有数据,我只是需要正确的命令将整列转换为yyyymmdd格式。

我使用的列是FIELD_034,表格是Sur_CompassAuto1_1_7_fetch

我正在使用SQL Server。

谢谢

2 个答案:

答案 0 :(得分:3)

我完全同意paqogomez的回复,但不是日期样式111,更好地使用112。 声明的输出

SELECT CONVERT(VARCHAR(10), FIELD_034, 111)

将导致 yyyy / MM / dd 。在哪里,

SELECT CONVERT(VARCHAR(10), FIELD_034, 112) 

将返回 yyyyMMdd ,这就是他所需要的。

答案 1 :(得分:2)

一个常见的误解是datetime有一种格式。如果您将日期存储为日期时间,则可以以任何格式输出日期。

听起来好像您可能将值存储为Varchar。最好将varchar日期转换为日期时间,然后你可以随心所欲地做任何事情

也就是说,如果您FIELD_034DateTime,那么就像

一样简单
SELECT CONVERT(VARCHAR(10), FIELD_034, 112)
from Sur_CompassAuto1_1_7_fetch

如果该字段是varchar,则其类似:

SELECT CONVERT(datetime, FIELD_034, 112)
from Sur_CompassAuto1_1_7_fetch

这个问题的难点在于您是否有不同或非标准格式的值。然后需要一些清理才能使查询工作。

编辑:正如@AArnold所说,它的112而不是111. Date formats are subtle.