Jak*_*ake 7 mysql sql datetime
所有,
我有一个MYSQL表,其中包含一个名为timestamp的列.它是DATETIME数据类型,其值类似于"10/1/2009 3:25:08 PM',"10/1/2009 3:30:05 PM',"10/4/2009 3:40:01 PM',等等..
我想编写一个SQL查询来选择两个日期之间的时间戳字段中的所有值.这样的事情:
select timestamp from tablename where timestamp >= userStartDate and timestamp <= userEndDate
Run Code Online (Sandbox Code Playgroud)
userInput日期没有时间部分.你能为此建议正确的MySQL查询语法吗?谢谢
Qua*_*noi 14
SELECT timestamp
FROM tablename
WHERE timestamp >= userStartDate
AND timestamp < userEndDate + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)
这将选择之间的每一个具有记录日期部分userStartDate和userEndDate,前提是这些字段具有的类型DATE(无时间部分).
如果开始日期和结束日期以字符串形式出现,请使用STR_TO_DATE从任何给定格式转换:
SELECT timestamp
FROM tablename
WHERE timestamp >= STR_TO_DATE('01/11/2010', '%m/%d/%Y')
AND timestamp < STR_TO_DATE('01/12/2010', '%m/%d/%Y') + INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)
SELECT timestamp
FROM myTable
WHERE timestamp BETWEEN startDate AND endDate
Run Code Online (Sandbox Code Playgroud)
为了在使用
BETWEEN日期或时间值时获得最佳结果,您应该使用CAST()显式转换为所需数据类型的值.示例:如果将aDATETIME与两个DATE值进行比较,请将DATE值转换为DATETIME值.如果使用字符串常量(例如与'2001-1-1'a进行比较)DATE,则将字符串强制转换为aDATE.
-http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between
| 归档时间: |
|
| 查看次数: |
64546 次 |
| 最近记录: |