簡體   English   中英

如何在MySQL插入語句中正確使用str_to_date的多個實例?

[英]How do you correctly use multiple instances of str_to_date with MySQL insert statement?

我正在嘗試將2個英國格式(dd / mm / yyyy)的日期插入MySQL US日期格式的MySQL數據庫。

我正在使用str_to_date。 第一個str_to_date實例可以按預期工作,但是第二個實例始終插入與第一個str_to_date實例相同的日期,即使原始日期不同。

$date_1 = "10/01/2016";
$date_2 = "16/02/2016";

$sql = "INSERT INTO customers (date_1, date_2)
VALUES (STR_TO_DATE( '$date_1', '%m/%d/%Y %h:%i' ), STR_TO_DATE( '$date_2', '%m/%d/%Y %h:%i' ))";

在MySQL插入語句中處理str_to_date的多個實例的正確方法是什么?

謝謝

str_to_date()的格式字符串告訴MySQL第一個參數的日期值是哪種格式。這不是如何格式化進入mysql(例如目標)格式的值。 str_to_date的輸出始終是本地mysql日期/時間值,即yyyy-mm-dd hh:mm:ss

因為您說的輸入格式是monday/day ,但是提供了day/month值和NO time值,所以您得到的結果很奇怪。

嘗試

                         24/01/2016
STR_TO_DATE( '$date_1', '%d/%m/%Y' )

代替。 請注意刪除時間格式字符。 您的輸入字符串根本沒有時間值。

mysql> select str_to_date('24/01/2016', '%m/%d/%Y %h:%i');
+---------------------------------------------+
| str_to_date('24/01/2016', '%m/%d/%Y %h:%i') |
+---------------------------------------------+
| NULL                                        |
+---------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> select str_to_date('24/01/2016', '%d/%m/%Y');
+---------------------------------------+
| str_to_date('24/01/2016', '%d/%m/%Y') |
+---------------------------------------+
| 2016-01-24                            |
+---------------------------------------+
1 row in set (0.00 sec)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM