工作台中的日期添加功能错误

时间:2018-03-12 15:27:24

标签: mysql

由于错误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

1 个答案:

答案 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,