0

我想要这样的东西:

SELECT * FROM TABLE1
WHERE DATE1 LIKE DATE2 + '%'

但是,当我尝试此操作时,出现以下错误:

“5407:日期时间或间隔的无效操作”

我在 Terdata SQL Assistant 工作

4

3 回答 3

0

您不能使用 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/

于 2018-12-07T16:57:56.130 回答
0

You could potentially just format the dates the same way to compare them.

WHERE FORMAT(DATE1, 'dd/mm/yyyy') = FORMAT(DATE2, 'dd/mm/yyyy')
于 2018-12-07T17:08:08.380 回答
0

date2 小于 1 天后

 where datediff(d,date1,date2) < 1 

由于您使用 like ... 您可能意味着在之前或之后的一天内。

 abs(datediff(d,date1,date2)) < 1 
于 2018-12-07T18:03:55.623 回答