[SQL] insert into employees(employee_id,last_name,email,hire_date,job_id) values(401,'oldlu','oldlu@sxt.cn',STR_TO_DATE('08时24分32秒', '%H时%i分%s秒'),'IT_PROG'); [Err] 1411 - Incorrect datetime value: '08时24分32秒' for function str_to_date
时间: 2023-08-08 18:06:54 浏览: 39
这个错误提示是因为 STR_TO_DATE 函数无法识别时间字符串中的中文字符“时”、“分”和“秒”,需要将这些中文字符替换为对应的英文字符“:”。你可以使用 REPLACE 函数来实现这一替换,如下所示:
```
INSERT INTO employees(employee_id, last_name, email, hire_date, job_id)
VALUES (401, 'oldlu', 'oldlu@sxt.cn',
STR_TO_DATE(REPLACE('08时24分32秒', '时', ':'), '%H:%i:%s'), 'IT_PROG');
```
这样就可以将时间字符串转换为 MySQL 中的时间格式,并成功插入到 employees 表中了。
相关问题
[SQL] insert into employees(employee_id,last_name,email,hire_date,job_id) values(401,'oldlui','oldlu@sxt.cn','2000/01/01','IT_PROG'); 受影响的行: 1 时间: 0.006s
这是一条SQL插入语句,向名为employees的表中插入一条新的记录其中包含了5个字段的值:employee为401,last_name为oldlui,email为oldlu@sxt.cn,hire_date为2000/01/01,job_id为IT_PROG。这条SQL语句执行后,受影响的行数为1,表示插入了一条新的记录。时间为0.006秒,表示执行该语句的时间为0.006秒。
[SQL] insert into employees(employee_id,last_name,email,hire_date,job_id) values(401,'oldlu','oldlu@sxt.cn',STR_TO_DATE('08时24分32秒','%H时%i分%s秒'),'IT_PROG'); [Err] 1411 - Incorrect datetime value: '08时24分32秒' for function str_to_date
这是因为 MySQL 中 STR_TO_DATE 函数的格式参数需要是英文格式的时间/日期格式,而不是中文格式的。
要解决这个问题,你需要将时间字符串 '08时24分32秒' 中的时、分、秒的中文字符替换成对应的英文字符。例如,将 '08时24分32秒' 替换为 '08:24:32'。然后再使用 STR_TO_DATE 函数进行格式化。
下面是修改后的 SQL 语句:
```
insert into employees(employee_id,last_name,email,hire_date,job_id) values(401,'oldlu','oldlu@sxt.cn',STR_TO_DATE('08:24:32','%H:%i:%s'),'IT_PROG');
```
注意,这里的时间字符串中的冒号需要使用英文冒号。