我们说
CREATE TABLE event (
eid INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
start_time TIME NOT NULL,
duration TIME NOT NULL,
description VARCHAR(50),
pid VARCHAR(50),
FOREIGN KEY (pid) REFERENCES person(pid) );
如果我想将start_time
的时间设置为下午2:00
我的问题是start_time变量应该只是Int?
然后我不能写下午
或它应该是某种类型的字符串?写下完整的'2:00 pm'
谢谢
答案 0 :(得分:0)
首先将start_time字段数据类型从时间更改为varchar,因为您要存储2:00 pm和pm关键字是字符串,因此字符串类型存储在varchar或char中
而不是
start_time TIME NOT NULL
编码
start_time VARCHAR (50) NOT NULL DEFAULT "2:00 PM",
如果你想在start_time字段代码中使用时间数据类型
start_time TIME NOT NULL DEFAULT "2:00",
删除PM关键字
答案 1 :(得分:0)
试试吧。
CREATE TABLE event (
eid INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
start_time TIME NOT NULL default "2:00",
duration TIME NOT NULL,
description VARCHAR(50),
pid VARCHAR(50),
FOREIGN KEY (pid) REFERENCES person(pid) );
如果"2:00"
为空,它会向start_time
插入默认start_time
值。
答案 2 :(得分:0)
作为替代方案,start_time字段可以直接存储“14:00:00”。
e.g
UPDATE TABLE SET start_time= STR_TO_DATE('14:00:00', '%k:%i:%s');
在检索数据时,sql可能如下所示:
SELECT TIME_FORMAT(start_time, '%r') FROM TABLE
然而,它仍然与您的预期略有不同,结果将是下午2:00:00