Сравнение двух столбцов DATETIME в SQL - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть два столбца даты и времени:

StartDate : 2019-07-01 13:30:00.000
AdmitDate : 2019-07-01 00:00:00.000

Я хочу выбрать все строки с одинаковой датой (исключая время, секунды и т. Д. c).

SELECT * 
FROM table1 as t1
    INNER JOIN table2 as t2 ON t1.id = t2.id
WHERE t1.startdate >= t2.admitdate or t1.startdate <= t2.admitdate

Однако это не будет работать, поскольку в одном из столбцов есть часы, минуты и секунды. Как это исправить? Опять же, я просто хочу дату, а не время.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Решение проще преобразовать столбцы в Дата

, это зависит от того, являются ли оба столбца датой-временем или один - датой

SELECT Table1.Id,Table1.Startdate
FROM Table1
INNER JOIN Table2 ON Table1.Id = Table2.Id
where (cast(Table1.Startdate as date))=(cast(Table2.AdmitDateTime as date))


SELECT Table1.Id,Table1.Startdate 
FROM Table1
INNER JOIN Table2 ON Table1.Id = Table2.Id
where (cast(Table1.Startdate as date))=Table2.AdmitDate

Пример

1 голос
/ 10 апреля 2020

Как насчет использования DATEDIFF () ?

SELECT * 
FROM table1 as t1
INNER JOIN table2 as t2 ON t1.id = t2.id
WHERE DATEDIFF(DAY, t1.startdate, t2.admitdate) = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...