【发布时间】:2013-11-07 18:00:32
【问题描述】:
我在处理 MySQL 中的 Timestamp 数据类型时遇到了一些麻烦。
我正在使用简单的数据库结构在我的数据库中保存简单的记录,例如:
身份证号码 名称 varchar 日期时间戳 文本 varchar然后用类似这样的方式检索它们:
SELECT * FROM table WHERE Date BETWEEN '2013-01-01' AND '2013-06-30'
如果我存储记录让 MySQL 用实际时间戳填充 Date 字段,一切正常,例如:2013-10-04 22:40:02,这意味着我不会在我的 INSERT 查询中向 Date 字段添加任何值。
但我需要能够自己添加日期,因为我的应用程序需要存储应用程序启动的日期,而不是查询发送到数据库的日期和时间。
所以我要做的是创建我的Date 字段使用的相同日期/时间格式,即2013-10-04 22:40:02,然后简单地插入:
INSERT INTO table (Name, Date, Text)
VALUES ('Peter', '2013-10-04 22:40:02', 'Hello...')
现在,这样做我无法使用像这样的选择查询按日期显示任何结果:
SELECT * FROM table WHERE Date BETWEEN '2013-01-01' AND '2013-11-30'
即使我尝试使用 PHPMyAdmin 界面按日期对结果进行排序,所有包含手动添加日期的记录都会消失。如果我按 ID 对它们进行排序,它们会重新出现。我检查了,日期和格式是正确的。所以我不知道问题可能是什么。顺便说一句,我是 MySQL 新手。
希望你能帮帮我。谢谢!
【问题讨论】:
-
这行得通吗:
SELECT * FROM table WHERE Date BETWEEN '2013-01-01 00:00:00' AND '2013-11-30 23:59:59'? -
@iamde_coder 感谢您的建议,我试过了但没有运气,它只会带来自动添加日期的结果