由于错误1292,我的插入失败,日期时间值不正确:' 0'
我已经阅读了这个错误,但我无法看到我正在做的事情会触发它。
我插入的桌子上的两个日期列都设置为DATE格式。这些值的源日期列是p.date,类型为int(20)。也许那些与DATE_ADD函数冲突。
我试图将它们间隔转换为YYYY-MM-DD格式。
有谁可以指出我在这里做错了什么?
INSERT INTO newTable (
sku_id,
group_id,
customer,
start_date,
expire_date,
quantity,
order_num
)
SELECT
s.id,
s.grpID,
p.cst,
DATE_ADD(DATE_FORMAT(CONVERT( p.date , CHAR (20)), '%Y-%m-%d'),
INTERVAL 7 DAY) AS start_date,
DATE_ADD(DATE_FORMAT(CONVERT( p.date , CHAR (20)), '%Y-%m-%d'),
INTERVAL 127 DAY) AS expire_date,
p.quantity,
p.invoice
FROM
skus s
INNER JOIN
temp p ON s.body = p.body
AND s.cov = p.cov
AND s.col = p.col
WHERE
p.quantity = 1
ORDER BY p.invoice DESC
LIMIT 10;
所以p.date有20160202,我需要2016-02-02
答案 0 :(得分:0)
如果p.date
是自纪元以来的秒数,并且您想要返回YYYY-MM-DD
,那么我将DATE_ADD
功能更改为以下内容:
DATE( FROM_UNIXTIME(p.date) + INTERVAL 7 DAY ) as start_date,
DATE( FROM_UNIXTIME(p.date) + INTERVAL 7 DAY ) as start_date,