2

わかりました、それはどこかで尋ねられるかもしれませんが、私はグーグルやSOでそれを見つけることができません.

私のクエリは

INSERT INTO Tracking (OrderNum, PickupDate, ...) VALUES (95370,10/01/2013, .....)

プレート フォームは MS-Access データベースを更新する php スクリプトで、ターゲット列pickupDateはアクセス データベースの日付/時刻データ型でした。

このクエリを実行したとき、DB 10/01/2013挿入された情報は .

しかし、次のクエリを使用すると

INSERT INTO Tracking (OrderNum, PickupDate, ...) VALUES (95370,'10/01/2013', .....)

だから私が知っているのは、qoutsの間のものはすべてSTRINGです

  • それで、日付は文字列ですか??
  • 2013 年 10 月 1 日と で結果が異なるのはなぜ"10/01/2013"ですか?

誰か説明してくれませんか??

あなたのガイドラインをありがとう..

4

3 に答える 3

4

使用する場合:

10/01/2013

これは、10 割る 1 割る 2013 という式であり、結果として次のようになります0,0049677。 ... 日付は実際には数値であるため、これが日付に変換されます。

使用する場合:

'10/01/2013'

日付に変換される文字列です。

内部的には、日付は文字列ではなく数値として保存されます。

于 2013-11-09T20:43:31.583 に答える
4

私の推測では、それ10/01/2013は除算演算として解釈されたため、結果の数値は小さな浮動小数点数でした:

0.00496770988   

そこから、MySQL はおそらく、UNIX タイムスタンプが与えられたと想定し、その数値をマングルして、保存可能な日付に変換しようとしました。

代わりに、MySQL が好む形式を指定YYYY-MM-DDして引用することをお勧めします。

'2013-10-01'

MySQL の日付の詳細

于 2013-11-09T20:44:58.293 に答える
0

列タイプとして使用DATEしている場合、入力が間違っています。MySQL は'2013-10-01'ではなく を期待します'10/01/2013'マニュアルを参照してください。

于 2013-11-09T20:43:38.663 に答える