我应该使用DATE和TIME作为字段而不是DATETIME

时间:2010-05-22 11:11:27

标签: php sql phpmyadmin

我有一个关于电视指南的项目,在数据库中称为mytvguide - 我使用PHPMyAdmin。这是一个表的结构,称为tvshow1:

Field       Type             
channel     varchar(255)             
date        date    No               
airdate     time    No               
expiration  time    No               
episode     varchar(255)     
setreminder varchar(255)    

但我不确定如何使用DATE,TIME来处理分页脚本(下面是脚本,适用于带有DATETIME的版本):http://pastebin.com/6S1ejAFJ

然而,虽然DATETIME可以运行 - 它显示当天播出的节目如下:

Programme 1 showing on Channel 1 2:35pm "Episode 2" Set Reminder
Programme 1 showing on Channel 1 May 26th - 12:50pm "Episode 3" Set Reminder
Programme 1 showing on Channel 1 May 26th - 5:55pm "Episode 3" Set Reminder

但是我不太确定如何复制那些使用DATE,TIME函数的字段,如上所示。

3 个答案:

答案 0 :(得分:1)

回答你的问题标题:

datetime类型非常方便,您始终可以使用date()或time()函数格式化此字段以获取相应的部分或 huge list <中的任何其他函数/强>

对于问题体,字段类型与分页无关。 有一个特别的问题吗?

答案 1 :(得分:1)

在MySQL中,您可以使用DATE_FORMAT(请参阅manual

例如:

SELECT DATE_FORMAT(airdate, "%d %M %Y - %H:%i") FROM programs WHERE ....

否则,您只需按原样提取值,并使用PHP提供的时间/日期函数进行修改

答案 2 :(得分:0)

如果您希望扩展数据库,则应遵循一条重要规则:避免使用每行功能,例如ifcoalescsecase和是,{{1} }和date()

表中的属性(列)应该是您处理的最小单位。如果您需要搜索日期,请单独存储日期。 不要将其合并到日期时间中,您必须在time()语句中将其解压缩。

将属性组合到单个字段中的人,例如日期到日期时间,或恐怖的恐怖,以及你想要检查各个部分的逗号分隔列表,正在做自己和他们的继承者是一个巨大的伤害。

通常最好将两个字段粘贴在一起(例如将日期和时间分配到分页脚本的日期时间),而不是尝试分割另一个字段(用于其他目的)。

当然,如果您从不打算在查询中单独使用日期和时间,或者您希望数据库保持较小,请随意忽略我的咆哮: - )