Mysql 从日期和时间值位于单独列中的表中选择

Mysql 从日期和时间值位于单独列中的表中选择,mysql,sql,date,select,time,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

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

将日期和时间列组合起来

SELECT * FROM table1 
WHERE timestamp(dateColumn, startTimeColumn) BETWEEN 'startDateAndTime' 
                                                 AND 'endDateAndTime'

合并日期和时间列

SELECT * FROM table1 
WHERE timestamp(dateColumn, startTimeColumn) BETWEEN 'startDateAndTime' 
                                                 AND 'endDateAndTime'

可能会更好地利用您在这些字段上可能拥有的任何索引(或者可能会干扰)

WHERE(dateColumn>startDate和dateColumn=startTime)

可能会更好地利用这些字段上的任何索引(或可能会干扰)

WHERE(dateColumn>startDate和dateColumn=startTime)
WHERE (dateColumn > startDate AND dateColumn <= endDate) 
   OR (dateColumn = startDate AND startTimeColumn >= startTime)