MySQLの1292年には、誤った日時の値を切り捨て:「2020年1月2日午前七時15分00秒」

スティーブ:

私は、日付と時刻のフィールドを連結することにより、日時フィールドを挿入しようとしています。

オム私のローカルのMySQLは、そのその同じメッセージで失敗し、サーバー上で、警告メッセージでの作業します。

この上の任意のヘルプしてください

ソース表(シフト詳細) -

CREATE TABLE IF NOT EXISTS `shift_t` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Name` varchar(20) NOT NULL,
  `NameShort` varchar(10) NOT NULL,
  `WeekType` varchar(4) NOT NULL,
  `DayOfWeek` char(3) NOT NULL DEFAULT '0',
  `StartTime` time NOT NULL DEFAULT '00:00:00',
  `EndTime` time NOT NULL DEFAULT '00:00:00',
  `LineID` int(10) unsigned NOT NULL DEFAULT 0,
  `PlantID` int(10) unsigned NOT NULL
)

負荷へのテーブルの例..

CREATE temporary TABLE shifttemp1 (
  plantid int(10) unsigned NOT NULL,
  lineid int(10) unsigned NOT NULL,
  starttime time NOT NULL,
  shiftstart1 datetime DEFAULT NULL
);

INSERT INTO shifttemp1
( plantid,lineid,starttime,shiftstart1)
SELECT    shf.plantid, 
          shf.lineid,
             shf.starttime,
          Str_to_date(CONCAT('2020-01-02', ' ', shf.starttime), '%Y-%m-%d %H:%i')  shiftstart1  
   from shift_t  shf 
    WHERE shf.dayofweek = 'MON' 
    AND shf.lineid = 31 
     AND shf.nameshort = 'DAY'     ;

エラーメッセージ

1292 Truncated incorrect datetime value: '2020-01-02 07:15:00'
GMB:

あなたは第二部が欠落しています。だから、基本的に、あなたはこれを変更したいです:

str_to_date(concat('2020-01-02', ' ', shf.starttime), '%Y-%m-%d %H:%i')

に:

str_to_date(concat('2020-01-02', ' ', shf.starttime), '%Y-%m-%d %H:%i:%s')

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=6198&siteId=1