SQL Server 2019条件窗格datetime字段过滤报错,求解决方法
SQL Server 2019 datetime字段过滤的正确写法
针对你在条件窗格过滤datetime类型字段遇到的问题,以下是几种可行的解决方法:
精确匹配指定时间
在条件窗格的SODueDate对应过滤行,直接输入带单引号的标准日期格式字符串:
='2023-04-26T00:00:00.000'
这里的T是ISO 8601标准的日期时间分隔符,能避免不同区域设置下的解析错误,确保SQL Server正确识别时间值。
匹配当天所有记录(忽略时间部分)
如果需要筛选2023-04-26当天的所有数据,推荐用范围过滤(这种写法能利用字段索引,性能更优):
在条件窗格中设置两行过滤条件,逻辑关系选AND:
- 第一行:
>= '2023-04-26' - 第二行:
< '2023-04-27'
也可以用类型转换的方式,但这种写法可能导致索引失效,仅在无索引或数据量较小时使用:
=CAST('2023-04-26' AS DATE)
或者在过滤行输入:
WHERE CAST(SODueDate AS DATE) = '2023-04-26'
错误原因说明
你之前的写法出错,大概率是因为没有给日期值加单引号,或者使用的日期格式不符合SQL Server的解析规则。SQL Server要求datetime类型的常量必须用单引号包裹,且推荐使用ISO标准格式避免解析歧义。
内容的提问来源于stack exchange,提问作者Ray
相关产品推荐
相关产品推荐

