2011-03-22 53 views
0

因此,mysql有一个时间(类型),它存储了一个24小时时钟,可以使用mysql函数date_format()以am/pm格式输出时间。唯一的问题是,当用户不选择时间时,存储在mysql数据库中的值是00:00:00,当我使用php回显时,结果是上午12:00。那么我该如何构架它,以便它可以区分零值和00:00:00,即上午12:00? (顺便说一句,我尝试在时间列插入null,结果是00:00:00,这是上午12:00)。Mysql将00:00:00解释为12:00 am?

+5

00:00:00一直12AM ..;) – Jakub 2011-03-22 02:52:08

+1

什么表(或列的定义更准确)?它是否分配一个默认值? – 2011-03-22 02:58:19

+0

你确定你不能将列设置为NULL吗?如果不是,则可能需要添加带有标志的另一列。但NULL应该工作.... – Thilo 2011-03-22 02:58:34

回答

2

因此,如何将I帧,以便它可以告诉 空值和 00:00:00这是上午12:00之间的差异? (顺便说一句,我尝试 插入时间列的空, 原来是00:00:00,这是 12:00 am)。

使列可以为空。 (删除NOT NULL约束。)

+0

好吧我使用phpmyadmin和有一个空复选框,我检查它(我认为列可以为空),每次没有插入值时,它就是-00:00:00,我认为这样可以。谢谢 – Ben 2011-03-22 03:05:23

+0

@Ben:MySQL充满了这样的陷阱。您应该考虑切换适当的RDBMS,或者至少使用SQL兼容模式:http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html – aib 2011-03-22 03:20:09

0

通过将选择时间字段保留为必需字段来验证用户输入字段的效果要好得多。

感谢