从表格中选择日期和时间值在不同的列中

时间:2014-10-15 16:39:51

标签: mysql sql date select time

我有一个值为“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函数。

3 个答案:

答案 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)