sql - 当我在关闭位置设置特定日期时,它可以工作,但是当我更改年份时,它不起作用。为什么?
问题描述
当我在 where 子句中过滤到 1/1/2020 时,查询有效。当我将年份更改为 2019 年时,出现此错误:
从字符串转换日期和/或时间时转换失败
为什么它适用于 2020 年 1 月 1 日而不是 2019 年 1 月 1 日?matteropendate 列是一个日期列——我检查了。
WITH aa (MatterNumber, claim_cat_NJS, ClaimCategoriesMulti) AS
(
SELECT
MatterNumber
,LEFT(ic.ClaimCategories, CHARINDEX(CHAR(10), ic.ClaimCategories + CHAR(10) ) - 1)
,STUFF(ic.ClaimCategories, 1, CHARINDEX( CHAR(10) , ic.ClaimCategories + CHAR(10) ), '')
FROM cases AS ic
UNION ALL
SELECT
aa.MatterNumber
,LEFT(aa.ClaimCategoriesMulti,CHARINDEX(CHAR(10),aa.ClaimCategoriesMulti+CHAR(10)
,STUFF(aa.ClaimCategoriesMulti, 1, CHARINDEX(CHAR(10), aa.ClaimCategoriesMulti + CHAR(10)), '')
FROM aa
WHERE 1 = 1
AND aa.ClaimCategoriesMulti > ''
)
Select *
FROM cases AS c
LEFT JOIN aa ON c.matterNumber = aa.matterNumber
WHERE 1 = 1
AND c.MatterOpenDate > '1/1/2019' /*this line of code results in error message whenever changed to a different year*/
解决方案
您需要使用格式
WHERE DateField >= '2020-01-01'
请记住时间组件,如果它是 DateTime
推荐阅读
- python - 使用 Python 更改 MAC 地址
- python - 我在 jupyter notebook python 上使用天气预报代码
- java - Kotlin:在扩展类之间共享抽象类中的变量
- reactjs - contentComponents 在本机反应中不起作用
- c# - 数字出现在二维数组中的次数
- shiny - 侧边栏中的过滤选项
- python - 将csv加载到数据库时如何在try except块中多次捕获单个异常
- shell - 如何使用 awk sed 或 cut 命令在匹配模式后打印一行
- android - Android Studio 上的对象返回 ID Null
- c++ - 如何在 do-while 循环中使用 getline?