在PHPMyAdmin字段中存储星期几?

时间:2011-08-29 13:43:33

标签: php mysql datetime date phpmyadmin

我有一个名为 education1 的数据库,所有内容都存储在表 courses1

这些是课程中的字段:

class VARCHAR(255),
classinfo VARCHAR(255),
dayofweek VARCHAR(255)

但是,我想在DATE FORMAT中存储星期几,看看http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date,但这是查询。

我想知道如何存储星期一到星期五作为命名天数的星期几。

我尝试了ENUM,但它不允许我使用短划线符号来显示: 周一至周五或周二至周三

3 个答案:

答案 0 :(得分:2)

你可以做两件事之一(注意那些是推荐的,你可以做其他一些事情。):

  • 将当天的索引存储为TINYINT(0-6)或(1-7),并在您的PHP脚本上解析以显示作为日名。
  • 使用ENUM,例如:

    dayofweek ENUM('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')
    

    CREATE TABLE查询。

如上所述,您还可以做其他事情,这些可能对您的问题最有效和最有效。

答案 1 :(得分:1)

请勿使用ENUM。

请勿使用varchar 255字段来保存一个永远不会超过12个字符的日期或字符串(取决于语言)。

如果要在数据库中保存工作日的表示形式,请使用可在查询中使用的格式存储它以取消引用日期值。 MySQL有一个函数 - DAYOFWEEK(date)

然后,如果必须,维护一个表格将这些表格映射回字符串。

答案 2 :(得分:0)

只需使用SMALLINT(1)就可以了。我记得周有7天。所以:1-7值。并阅读有关规范化的内容。我认为在哪里Class,应该有class_id。

所以,这应该是这样的:

curses1

id | class_id | dayofweek

id | 名称 | 信息

查询:SELECT L.dayofweek, R.name, R.info FROM curses1 L LEFT JOIN clases R ON L.class_id = R.id