2013-11-09 24 views
2

好吧,這可能是某個地方問過,但我無法找到它在谷歌或SO,什麼是約會?一個字符串?或雙?

我的查詢語句

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

板的形式是一個PHP腳本更新MS-訪問db..and目標列pickupDate是Access數據庫日期/時間數據類型的..

,當我跑這個查詢,插入DB 信息不10/01/2013,更確切地說,它是長的像數字34444444299384(類似的東西,didnt注意到exac TLY)..

但是當我使用下面的查詢

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

所以對於我所知道的是,在qoutes之間什麼是一個字符串

  • 所以,是一個日期串??
  • 爲何10/01/2013和"10/01/2013"的結果不同?

有人可以請給我解釋一下嗎?

感謝您的指導..

+0

這個問題被標記MySQL,但你提到你的文本,而MS-訪問。你在使用什麼類型的數據庫? –

回答

4

當你使用:

10/01/2013 

它是一個表達式:10 1 2013分分,給結果:0,0049677 ...然後將其轉換爲日期,因爲日期實際上是數字。

當你使用:

'10/01/2013' 

這是一個字符串,並將其轉換成一個日期。

在內部,日期存儲爲數字而不是字符串。

0

如果您使用DATE作爲列類型,那麼您的輸入是錯誤的。 MySQL期望'2013-10-01',而不是'10/01/2013'。請參閱the manual

+1

請參閱您的答案輸入 –

3

我的猜測是,10/01/2013被解釋爲一個除法運算,所以得到的數字是一個小的浮點數:

0.00496770988 

從那裏時,MySQL可能以爲你給它一個UNIX時間戳和它毀損了數字來嘗試將其轉換爲可儲存的日期。

你想要做的,而不是什麼是給MySQL的它更YYYY-MM-DD格式,並引用它:

'2013-10-01' 

More on MySQL Dates

相關問題