【问题标题】:How to convert varchar to datetime如何将varchar转换为日期时间
【发布时间】:2017-07-05 18:55:12
【问题描述】:

我有一个 [YYYYmmdd hhmmss] 格式的 varchar 列标题 (Prod_time),我正在尝试将其转换为日期时间。我需要能够从一定天数中提取数据,并且我希望能够将 varchar 转换为 datetime 以促进这一点。

有没有办法将 varchar 转换为 datetime?不需要特殊的日期时间格式,只需进行数据类型转换。

【问题讨论】:

  • 为什么哦,为什么您首先将日期时间信息存储在 varchar 列中?这必须是最常被滥用的数据类型决策。
  • 相信我,如果我能按照自己的方式去做,我们就不会将日期/时间数据存储在 varchar 列中!它使处理数据变得更加困难,并且需要额外的行和操作。但是在我工作的公司,管理政治和安全等阻碍了防止此类不必要的滋扰 =/

标签: sql-server datetime type-conversion varchar


【解决方案1】:

您需要在此处强制输入几个字符,以便转换函数知道如何处理这个问题。我们可以很容易地使用 STUFF。鉴于提供的字符串格式,此方法有效。

declare @SomeChar varchar(20) = '20170216 100903'

select CONVERT(datetime, STUFF(STUFF(@SomeChar, 12, 0, ':'), 15, 0, ':'))

如果可能,您应该考虑将数据类型转换为日期时间。它消除了这种麻烦,还防止了无效值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 2019-03-13
    • 1970-01-01
    • 2015-05-17
    相关资源
    最近更新 更多