我有一个名为 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,但它不允许我使用短划线符号来显示: 周一至周五或周二至周三
答案 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