我有一个值为“2014-10-10”的dateColumn和值为“10:10:44”的startTimeColumn。如何从dateColumn位于'startDate'和'endDate'之间的表中选择所有内容,并且startTimeColumn在'startDate'上大于或等于'startTime'?
这就是我的意思:(我知道这不起作用,只是为了表明我的意思)
SELECT * FROM table1 WHERE dateColumn BETWEEN 'startDate' AND 'endDate' AND IF TRUE(
IF(dataColumn == 'startDate')
THEN IF(startTimeColumn >= 'startTime')
RETURN TRUE
ELSE
RETURN FALSE
ELSE
RETURN TRUE
);
我正在使用MySQL,我无法使用SQL函数。
答案 0 :(得分:6)
合并日期和时间列
SELECT * FROM table1
WHERE timestamp(dateColumn, startTimeColumn) BETWEEN 'startDateAndTime'
AND 'endDateAndTime'
答案 1 :(得分:1)
SELECT *
FROM Table
WHERE CAST(DateColumn AS DATETIME) + CAST(TimeColumn AS DATETIME)
BETWEEN 'StartDateTime' AND 'EndDatetime'
答案 2 :(得分:1)
可能可以更好地利用您在这些字段上可能包含的任何索引(但OR可能会干扰该字段)
WHERE (dateColumn > startDate AND dateColumn <= endDate)
OR (dateColumn = startDate AND startTimeColumn >= startTime)