Я хочу что-то вроде следующего:
SELECT * FROM TABLE1 WHERE DATE1 LIKE DATE2 + '%'
Однако, когда я пытаюсь это сделать, я получаю следующую ошибку:
"5407: недопустимая операция для DateTime или Interval"
Я работаю в Terdata SQL Assistant
Вы можете просто отформатировать даты таким же образом, чтобы сравнить их.
WHERE FORMAT(DATE1, 'dd/mm/yyyy') = FORMAT(DATE2, 'dd/mm/yyyy')
date2 меньше, чем на 1 день позже
where datediff(d,date1,date2) < 1
Поскольку вы используете как ..., вы можете иметь в виду в течение дня до или после.
abs(datediff(d,date1,date2)) < 1
Вы не можете использовать как для сравнения дат, так как для сравнения строк (varchar), тогда вы можете привести эти даты к varchar, или, как лучше, приведите обе даты к одному и тому же формату, например:
SELECT * FROM TABLE1 WHERE convert(varchar, DATE1, 103) = convert(varchar, DATE2, 103)
Таким образом, приведение даты к формату: ДД / ММ / ГГГГ
Если вы хотите преобразовать данные в другие форматы, я дам вам ссылку, объясняющую больше типов: https://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/