我正在调和两个不同的数据源。我正在尝试根据这样的条件,根据一堆条件从其中一个插入另一个
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;
而我得到
Error Code: 1292. Incorrect datetime value: '498' for column 'dateEntered' at row 1
。我在另一个选项卡中浏览了我的
SELECT
语句数据,同时添加了HAVING dateEntered LIKE '%498%'
以及HAVING dateEntered IS NULL
和HAVING dateEntered = ''
,因为我阅读了这两个都会导致问题,但没有出现任何一行。仅查看数据并按dateEntered
对其进行排序,我发现两端都没有问题。是什么原因造成的,如何解决或解决它?
最佳答案
对于INSERT ... SELECT
语句,列名(或别名)无关紧要。 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'
要么
INSERT into test_table (a, b, c)
VALUES ('c', 'b', 'a')
在表中,您将拥有
a | b | c
----|-----|----
'c' | 'b' | 'a'
换句话说:列不通过名称匹配,而是通过位置匹配。
关于mysql - 无法从选择语句中插入日期错误代码:1292 MySQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57499888/