【问题标题】:Converting string with format "2014-08-12-12:42:38:133936" to datetime将格式为“2014-08-12-12:42:38:133936”的字符串转换为日期时间
【发布时间】:2016-03-02 16:59:10
【问题描述】:

我在将这个来自 Web 服务的字符串转换为我们数据库的日期时间时遇到问题。

我知道我可以获取每个日期/时间的子字符串并对其进行格式化,这样我就可以将其分解并将时间添加回日期,但必须有一个更简单的方法。我很害怕如果我以“hack”的方式来做,那么在某个地方会有一个会破坏逻辑的日期。

那么在将格式为“2014-08-12-12:42:38:133936”的字符串转换为 Datetime 数据类型时,是否有人有提示?

【问题讨论】:

  • 使用 CASTCONVERT tsql 函数。
  • 您是否需要将精度保持在 yyyy-mm-dd hh:mm:ss.mmmmm 或者您对 yyyy-mm-dd hh:mm:ss.mmm 感到满意

标签: tsql datetime type-conversion


【解决方案1】:

如果您不需要将精度保持在 yyyy-mm-dd hh:mm:ss.mmmmmm 或者您对 yyyy-mm-dd hh:mm:ss.mmm 感到满意

应该这样做:

DECLARE @value VARCHAR(MAX) = '2014-08-12-12:42:38:133936'

SELECT  convert(datetime,  STUFF(SUBSTRING(@value,1,LEN(@value)-3),11,1,' '), 21)

SELECT  CAST(STUFF(SUBSTRING(@value,1,LEN(@value)-3),11,1,' ')AS DATETIME )

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 2017-01-26
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多