我有一个标准的mysql时间戳,格式为2011-11-14 20:06:24.只要将新记录添加到名为lead的表中,就会添加此时间戳.
我有两个输入字段供用户以日期和日期输入dd / mm / yyyy格式.一旦用户输入两个日期并按下按钮,值将被传递到其他字段以从表格中获取在时间范围之间插入的记录.
我尝试了以下查询,但它不起作用
SELECT DATE_FORMAT(added_on, '%d/%m/%Y') as date
FROM lead
WHERE added_on BETWEEN "10/11/2011" AND "14/11/2011"
解决方法:
使用日期,日期时间和时间戳的标准格式:’2011-11-14’而不是’14 / 11/2011′.
使用单引号,而不是双引号.
如果added_on是时间戳,则不应使用BETWEEN,否则您将丢失最后一天的几乎所有记录,因为’2011-11-14’将转换为’2011-11-14 00:00:00′.请改用:
WHERE added_on >= '2011-11-10'
AND added_on < '2011-11-15' --- note the "< the next day"
要么
WHERE added_on >= '2011-11-10'
AND added_on < ('2011-11-14' + INTERVAL 1 DAY)
您应该仔细阅读MySQL docs: TIMESTAMP properties
页面,了解MysqL和MySQL docs: Timezone support
中如何处理(并自动插入,更新)时间戳.