从select语句插入日期时出错错误代码:1292 MySQL

从select语句插入日期时出错错误代码:1292 MySQL,mysql,sql,sql-insert,mysql-5.6,Mysql,Sql,Sql Insert,Mysql 5.6,我正在核对两种不同的数据来源。我试图根据一系列条件,使用这样的语句,从一个插入到另一个 INSERT INTO `tab`.`listsalesorders` (`number`, `name`, `status`, `parentProjectID`, `dateEntered`, `individualId`, `taxable`, .... SELECT m.number as `number`, m.name as `name`, 3 as `Status`, -1 as `ind

我正在核对两种不同的数据来源。我试图根据一系列条件,使用这样的语句,从一个插入到另一个

INSERT INTO `tab`.`listsalesorders`
(`number`,
`name`,
`status`,
`parentProjectID`,
`dateEntered`,
`individualId`,
`taxable`,
....
SELECT 
m.number as `number`, 
m.name as `name`, 
3 as `Status`,
-1 as `individualId`,
m.parentProjectID as `parentProjectID`,
m.dateEntered as `dateEntered`, 
m.taxable as `taxable`, 
...
FROM (SELECT si.number as `number`, 
si.description as `name`, 
si.date as `dateEntered`,
p.idx as `parentProjectID`, 
si.date as `Date`, 
IF(si.salesTaxID='NJ',2,1) as `taxable` FROM listsoli si 
JOIN listprojects p ON LEFT(si.number,LOCATE('-',si.number) - 1)=p.number
GROUP BY si.number) as m;
我得到了错误代码:1292。第1行“dateEntered”列的datetime值“498”不正确

我在另一个选项卡中查看了我的SELECT语句数据,添加了一个HAVING DATETERTED(如“%498%”)以及HAVING DATETERTED为NULL,并且HAVING DATETERTED=因为我已经阅读了这两个选项,这两个选项都会导致问题,但不会出现一行。只要查看数据并按DateEnter排序,我就看不到任何尾部问题

是什么导致了这种情况?我如何修复或解决它?

对于语句,列名或别名并不重要。INSERT和SELECT中列的顺序必须匹配。例如:

INSERT into test_table (a, b, c)
SELECT
  'c' as c,
  'b' as b,
  'a' as a

INSERT into test_table (a, b, c)
SELECT 'c', 'b', 'a'

在桌子上你会有

a   | b   | c
----|-----|----
'c' | 'b' | 'a'

换句话说:这些列不是根据它们的名称匹配的,而是根据它们的位置匹配的。

为什么要将m.parentProjected插入dateEntered?是的,我现在在select查询的parentID第一行中看到了498,但我看不到我在insert中如何使用m.parentProjectID作为parentProjectID,m.dateEntered作为dateEntered,输入的是si.date,输入的是p.idx,输入的是parentprojectd,。你能解释一下我哪里出错了/需要更改什么吗?移动-1作为individualId,在m.dateEntered作为dateEntered之后,`不,是列定义的顺序决定了哪些值放在哪些列中,而不是名称。你认为错了:-
a   | b   | c
----|-----|----
'c' | 'b' | 'a'