我想要这样的东西:
SELECT * FROM TABLE1
WHERE DATE1 LIKE DATE2 + '%'
但是,当我尝试此操作时,出现以下错误:
“5407:日期时间或间隔的无效操作”
我在 Terdata SQL Assistant 工作
我想要这样的东西:
SELECT * FROM TABLE1
WHERE DATE1 LIKE DATE2 + '%'
但是,当我尝试此操作时,出现以下错误:
“5407:日期时间或间隔的无效操作”
我在 Terdata SQL Assistant 工作
您不能使用 like 来比较日期,例如比较字符串(varchar),然后您可以将此日期转换为 varchar 或更好的方法是将两个日期转换为相同的格式,例如:
SELECT * FROM TABLE1
WHERE convert(varchar, DATE1, 103) = convert(varchar, DATE2, 103)
这种方式将日期转换为格式:DD/MM/YYYY
如果您想转换为其他格式,我会给您一个解释更多类型的链接:https ://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/
You could potentially just format the dates the same way to compare them.
WHERE FORMAT(DATE1, 'dd/mm/yyyy') = FORMAT(DATE2, 'dd/mm/yyyy')
date2 小于 1 天后
where datediff(d,date1,date2) < 1
由于您使用 like ... 您可能意味着在之前或之后的一天内。
abs(datediff(d,date1,date2)) < 1