【问题标题】:I have a column of dates in varchar and i need to convert to date我在 varchar 中有一列日期,我需要转换为日期
【发布时间】:2014-11-01 20:12:25
【问题描述】:

日期当前显示为:ddmmmyyyy (12DEC2013)

我一直在玩这个公式:

DECLARE @Date char(8)
set @Date='12312009'
SELECT CONVERT(datetime,RIGHT(@Date,4)+LEFT(@Date,2)+SUBSTRING(@Date,3,2))

但我没有任何成功,有人可以帮我解决这个问题。此外,我所有的日期都在一个名为 TERMDT 的列中,我想将所有新的日期值都放在一个新的列中。

【问题讨论】:

  • 这是mysql还是sql-server?它们不是一回事。
  • 为什么你将日期存储为 varchar?您确实需要使用正确的数据类型。
  • sql server,抱歉。
  • 我收到了这个格式非常糟糕的巨大表格,我需要在上面运行所有这些查询,而这实际上是不可能做到的。我永远不会以这种方式创建表格。
  • 我担心你在谈论改变格式。您需要更改数据类型。日期时间不以格式存储。希望您的新列是日期或日期时间列。将消除所有这种痛苦。

标签: sql sql-server converter


【解决方案1】:

只需给convert() 一个适当的第三个参数(格式):

SELECT CONVERT(datetime,
               RIGHT(d, 4) + LEFT(d,2) + SUBSTRING(d, 3, 2),
               112)
from (select '12312009' as d) t

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2021-06-20
    • 2016-10-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多