插入TIME值

时间:2013-10-23 04:27:32

标签: mysql database database-design

我们说

 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'

谢谢

3 个答案:

答案 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