我一直试图在带有斜杠的日期类型列中插入一个值,但keep会使我为null(成功时)或失败。
CREATE TABLE if not exists EMPLOYEE (
id primary key,
dob Date
)
上方是表格的结构
INSERT INTO EMPLOYEE VALUES (1, convert(date, "17/12/2015", 103));
INSERT INTO EMPLOYEE VALUES (1, CAST("15/2/1995" AS DATE));
这两行代码是我尝试过的。 通过使用第一行,它将引发错误。 第二行成功创建了一条记录,但最终在dob列中为NULL。
我实际上已经缩短了它们的可读性,但是如果您需要其他任何内容,我很乐意提供。
答案 0 :(得分:1)
首先,您应该使用标准格式作为日期:
INSERT INTO EMPLOYEE (id, dob)
VALUES (1, '2015-12-17');
如果要在MySQL中使用其他格式,请使用str_to_date()
:
INSERT INTO EMPLOYEE (id, dob)
VALUES (1, STR_TO_DATE('17/12/2015', '%d/%m/%Y'));
您要使用的CONVERT()
函数是SQL Server扩展。它不能在其他数据库中工作(嗯,除了Sybase,因为它确实是Sybase扩展,并且SQL Server基于该代码库)。