You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何区分SQL Server中的字符串与datetime字面量?特殊格式判断

如何判断特定格式文本属于SQL Server的字符串还是datetime类型?

官方参考示例

datetime常量示例

'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'

字符串常量示例

'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"

判断逻辑与具体案例分析

判断核心是文本是否符合SQL Server认可的datetime格式,且能解析为合法的日期时间值,不满足则为字符串:

  • '2-Dec 2018':该格式符合SQL Server的datetime解析规则,2-Dec是合法的日+月份缩写,搭配2018是有效日期,因此属于datetime常量。
  • 'Dec 500, 2014':其中500超出了月份的最大天数限制(任何月份最多31天),无法解析为合法日期,因此只能作为字符串常量。

补充说明

SQL Server对datetime的判断本质是看文本能否被数据库引擎成功转换为datetime类型值。只要格式匹配且日期值合法(比如日期不超过当月最大天数、年份在datetime的有效范围1753-2079之间等),就会被识别为datetime常量;反之则按字符串处理。

内容的提问来源于stack exchange,提问作者David542

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:35:13