【发布时间】:2019-06-03 16:28:08
【问题描述】:
我正在尝试将字符串转换为日期。该字段为 5 或 6 个字符,具体取决于月份。现场样本数据如下:
20185,
20186,
20187,
20188,
20189,
201810,
201811,
201812,
20191,
20192,
20193,
20194
我可以轻松地将年份拉出来 - 左边总是 4 位数。
我如何提取月份数字?除了使用 case/if 语句评估字段长度之外,还有其他方法吗?
【问题讨论】:
-
月份总是“剩下的”。
SELECT RIGHT('00' + STUFF('20185', 1, 4, ''), 2)-- T-SQL 中任何不能用STUFF解决的字符串问题都不值得解决。 -
谢谢!这也有效!非常感谢!
-
A
date有 day、month 和 year,但您只是从 年和月。您对date的期望是什么天?date没有前导零,但可以格式化为没有前导零的字符串。这使得标题和问题有些不一致。
标签: sql tsql sql-server-2016