【问题标题】:I want to convert a whole column into the date format of yyyymmdd, I do not want the current date我想将一整列转换为 yyyymmdd 的日期格式,我不想要当前日期
【发布时间】:2014-05-30 06:23:52
【问题描述】:

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

我使用的列是FIELD_034,表是Sur_CompassAuto1_1_7_fetch

我正在使用 SQL Server。

谢谢

【问题讨论】:

  • 字段定义为什么类型?
  • 检查我的编辑,这应该适用于DateTimeVarchar

标签: sql sql-server database date


【解决方案1】:

一个常见的误解是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.

【讨论】:

    【解决方案2】:

    我完全同意 paqogomez 的回复,但最好使用 112,而不是 111 的日期样式。 语句的输出

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

    将导致 yyyy/MM/dd。其中,

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

    会返回yyyyMMdd,这正是他所需要的。

    【讨论】:

    • 它的简单的事情让你。出色的抓地力。 +1。我将编辑我的答案。
    猜你喜欢
    • 2018-01-02
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多