gpt4 book ai didi

sql-server - 将 'YYYYMMDDHHMMSS' 格式的字符串转换为日期时间

转载 作者:行者123 更新时间:2023-12-02 07:48:09 28 4
gpt4 key购买 nike

我认识到已经有很多关于将字符串转换为日期时间的问题,但我还没有找到任何用于转换像20120225143620这样包含秒的字符串的内容。

我试图执行一个干净的转换,而不需要对每个段进行子串并用 /: 连接。

有人有什么建议吗?

最佳答案

您可以使用 STUFF() 方法将字符插入字符串中,以将其格式化为 SQL Server 能够理解的值:

DECLARE @datestring NVARCHAR(20) = '20120225143620'

-- desired format: '20120225 14:36:20'
SET @datestring = STUFF(STUFF(STUFF(@datestring,13,0,':'),11,0,':'),9,0,' ')

SELECT CONVERT(DATETIME, @datestring) AS FormattedDate

输出:

FormattedDate
=======================
2012-02-25 14:36:20.000

如果您的字符串始终具有相同的长度和格式,并且它从字符串末尾到开头生成以下格式的值,则此方法将有效:YYYYMMDD HH:MM:SS

为此,您不需要以任何方式分隔日期部分,因为 SQL Server 将能够在格式化时理解它。

相关阅读:

STUFF (Transact-SQL)

The STUFF function inserts a string into another string. It deletes a specified length of characters in the first string at the start position and then inserts the second string into the first string at the start position.

STUFF ( character_expression , start , length , replaceWith_expression )

关于sql-server - 将 'YYYYMMDDHHMMSS' 格式的字符串转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28678191/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com