我想将整列转换为yyyymmdd
的日期格式,我不想要当前日期,因此我无法使用getdate()
命令,列中已有数据,我只是需要正确的命令将整列转换为yyyymmdd
格式。
我使用的列是FIELD_034
,表格是Sur_CompassAuto1_1_7_fetch
。
我正在使用SQL Server。
谢谢
答案 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_034
为DateTime
,那么就像
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.