[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 22:06:54 浏览: 100
这是因为 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');
```
注意,这里的时间字符串中的冒号需要使用英文冒号。
相关问题
[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 数据库中的默认日期时间格式与你所使用的格式不匹配。你可以通过查看 MySQL 中的默认日期时间格式的方式来解决此问题:
```
SELECT @@GLOBAL.sql_mode;
SELECT @@SESSION.sql_mode;
```
如果其中的结果包含了 STRICT_TRANS_TABLES,则说明使用的是严格模式,这会导致出现上述错误。你可以通过执行以下语句来修改模式:
```
SET @@global.sql_mode='NO_ENGINE_SUBSTITUTION';
SET @@SESSION.sql_mode='NO_ENGINE_SUBSTITUTION';
```
然后再执行你的 SQL 语句即可。
阅读全文