MySQL中的日期时间数据类型出错

时间:2011-11-10 10:01:08

标签: mysql insert

我在MySQL中使用下面的mensioned查询创建了一个表。

CREATE TABLE Pat_Visit (PatientID INT(16), FOREIGN KEY(PatientID) REFERENCES patient_demo(PatientID),Visit_DateTime DATETIME,Visit_Title VARCHAR(6),
DoctorID INT(16),FOREIGN KEY(DoctorID) REFERENCES Doctor(DoctorID));

我试图使用下面给出的查询添加一些数据。

  INSERT INTO Pat_Visit(PatientID,Visit_DateTime,Visit_Title,DoctorID) VALUES (100001,10/24/11 10:00 AM,'PAIN IN JOINTS',920001);

但是它引发了错误。我不知道这里有什么问题。任何人都可以帮助我...

3 个答案:

答案 0 :(得分:6)

试试这条指令:

INSERT INTO Pat_Visit(PatientID,Visit_DateTime,Visit_Title,DoctorID) 
VALUES (100001,'2011-10-24 10:00:00','PAIN IN JOINTS',920001);

你可以像这样转换你的日期:

STR_TO_DATE('10/24/11 10:00 PM','%m/%d/%Y %h:%i %p')

所以说明是:

INSERT INTO Pat_Visit(PatientID,Visit_DateTime,Visit_Title,DoctorID) 
    VALUES (100001,STR_TO_DATE('10/24/11 10:00 PM','%m/%d/%Y %h:%i %p'),'PAIN IN JOINTS',920001);

Mysql datetime documentation

中提取
  

MySQL在'YYYY-MM-DD HH:MM:SS'中检索并显示DATETIME值   格式。支持的范围是“1000-01-01 00:00:00”到“9999-12-31”   23时59' 分59秒。

答案 1 :(得分:0)

由于您没有发布错误,因此调试有点困难。无论如何:

  1. 您应该在单引号之间写日期时间
  2. 这是日期时间的典型格式:2011-02-23 17:34:11

答案 2 :(得分:0)

将日期放在引号中,然后重新格式化时间和日期:

INSERT INTO Pat_Visit(PatientID, Visit_DateTime, Visit_Title, DoctorID) 
VALUES (100001, '2011-10-24 10:00', 'PAIN IN JOINTS', 920001);

此外,使Visit_Title列更大。 6个字符不足以存储'PAIN IN JOINTS'。

相关问题