Iva*_*van 9 mysql sql time datetime date
列d是DATE,列t是时间,列v是,例如,INT.假设我需要在2012年2月1日15:00之后记录的所有值.如果我写
SELECT * FROM `mytable` WHERE `d` > '2012-02-01' AND `t` > '15:00'
Run Code Online (Sandbox Code Playgroud)
所有在15:00之前在任何日期做出的记录将被排除在结果集之外(以及2012-02-01所有记录),而我想看到它们.如果有一个DATETIME列似乎很容易,但是在我的情况下,有相应的日期和时间列.
我现在能看到的最好的东西就像
SELECT * FROM `mytable` WHERE `d` >= '2012-02-02' OR (`d` = '2012-02-01' AND `t` > '15:00')
Run Code Online (Sandbox Code Playgroud)
有更好的想法吗?也许在MySQL中有这个功能?是不是有类似的东西
SELECT * FROM `mytable` WHERE DateTime(`d`, `t`) > '2012-02-01 15:00'
Run Code Online (Sandbox Code Playgroud)
可能?
Bri*_*laz 21
你可以使用mysql CONCAT()函数将两列一起添加到一个,然后像这样比较它们:
SELECT * FROM `mytable` WHERE CONCAT(`d`,' ',`t`) > '2012-02-01 15:00'
Run Code Online (Sandbox Code Playgroud)
Bra*_*ace 11
该TIMESTAMP(expr1,expr2)函数明确用于组合日期和时间值:
使用单个参数,此函数将日期或日期时间表达式
expr作为日期时间值返回.使用两个参数,它将时间表达式添加expr2到日期或日期时间表达式expr1,并将结果作为日期时间值返回.
由此产生的使用正是您预测的:
SELECT * FROM `mytable` WHERE TIMESTAMP(`d`, `t`) > '2012-02-01 15:00'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23147 次 |
| 最近记录: |