-1

假设我们有

 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'

谢谢你

4

3 回答 3

0

首先将 start_time 字段数据类型从 time 更改为 varchar,因为您要存储 2:00 pm 并且 pm 关键字是字符串,因此字符串类型存储在 varchar OR 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 关键字

于 2013-10-23T04:35:39.017 回答
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_timestart_time

于 2013-10-23T04:44:25.063 回答
0

作为替代方案,start_time 字段可以直接存储“14:00:00”。

例如

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 PM

于 2013-10-23T05:22:46.400 回答