在 MySQL 中輸入 DATETIME 值的數據類型到底是什麼
我正在嘗試將數據從 PLC 直接獲取到 MySQL 8.0 數據庫(使用 MySQL Workbench)。我需要知道列的輸入值是什麼數據類型,
DATETIME
這樣我才能以正確的格式發送。實際問題:我假設它是字元串,因為當我使用 and 手動輸入值時
INSERT
,該值必須在“”中。這是我的一個愚蠢的假設嗎?當我的 PLC 的輸出是字元串並且我的列的數據類型是
DATETIME
,我從SELECT
數據庫中讀取的內容是完全錯誤的:‘1905-07-13 00:00:00’ 而不是 ‘2021-04-30 08 :51:30’。但是,如果我將它寫在設置為 type 的 DB 列中VARCHAR
,它會正確寫入,但不適用於我的下一個應用程序。因此,如果我將列更改為DATETIME
,一切正常,但這是非常不切實際的,每次我需要添加到數據庫時,我都可以更改列的數據類型。我在這裡做的另一個假設是輸入數據類型是導致此問題的原因,但現在是這樣,
DATE
並且DATETIME
我正在使用的驅動程序不支持,所以也許我只是一廂情願地認為這會工作。注意:如果它不是主題,請遷移它,不確定它是否最適合這里或堆棧溢出……
第二個注意事項:我發現完成這項工作的唯一方法是作為 VARCHAR 寫入數據庫,然後在我的應用程序中使用 CONVERT(,DATETIME) ,但是我不能只在我的數據庫中寫入日期感覺很奇怪由於某些原因…..
您必須以字元串文字或數字文字的形式提供值。
MySQL 8.0 Reference Manual / … / Date and Time Literals中描述了可能的格式。
或者,您可以提供任何自定義格式的數據,並在 INSERT 查詢中使用相應的解析模式對其應用STR_TO_DATE() 。