加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 将带有’YYYYMMDDHHMMSS’格式的字符串转换为date

发布时间:2020-12-12 07:07:49 所属栏目:MsSql教程 来源:网络整理
导读:我认识到已经发布了很多关于将字符串转换为日期时间的问题,但我没有找到任何用于转换字符串的内容,如20120225143620,其中包括秒. 我试图执行一个干净的转换,而不是将每个段子串出来并与/和连接:. 有没有人有什么建议? 解决方法 您可以使用STUFF()方法将字符
我认识到已经发布了很多关于将字符串转换为日期时间的问题,但我没有找到任何用于转换字符串的内容,如20120225143620,其中包括秒.

我试图执行一个干净的转换,而不是将每个段子串出来并与/和连接:.

有没有人有什么建议?

解决方法

您可以使用STUFF()方法将字符插入到字符串中,以将其格式化为SQL Server将能够理解的值:
DECLARE @datestring NVARCHAR(20) = '20120225143620'

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

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 )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读