2012-12-18 287 views
0

我需要創建一個數據庫,它將容納一些datetime值。SQL Server的php日期時間格式

所以我定義列爲datetime類型,並且我有這個日曆。

那麼,哪些應該是日曆輸入的格式以便日期時間起作用呢?

因爲我需要做一些搜索,即

Select FROM table_name between date1 to date2 

就目前而言,它是:

mm/dd/yyyy 

我使用這個:

$today = date("dd/mm/yyyy");     
$strSQL = "SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added 
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE data_e_shitjes=$today"; 

感謝

回答

0

有很多格式支持由SQL Server編輯 - 請參閱MSDN Books Online on CAST and CONVERT。這些格式中的大多數是,依賴於,因此您可以設置哪些設置 - 因此,這些設置可能會工作一些 - 有時不會。

解決這個問題的方法是使用(稍作改動)ISO-8601日期由SQL Server支持的格式 - 這種格式的作品總是 - 不管你的SQL Server的語言和日期格式設置。

ISO-8601 format由SQL Server支持有兩種形式:

  • YYYYMMDD只是日期(沒有時間部分);請注意:沒有破折號!,這非常重要! YYYY-MM-DD不是獨立於您的SQL Server中的dateformat設置,並將在所有情況下工作!

或:

  • YYYY-MM-DDTHH:MM:SS的日期和時間 - 這裏需要注意:這種格式破折號(但他們可以可省略),並固定T的日期和時間之間的分隔符你的部分DATETIME

這對SQL Server 2000及更新版本有效。

如果你使用SQL Server 2008或更高版本和DATE數據類型(僅DATE - !DATETIME),那麼你的確可以同時使用YYYY-MM-DD格式,將工作,也與任何設置在你的SQL Server 。

不要問我爲什麼這整個話題如此棘手,有點令人困惑 - 這就是它的方式。但使用YYYYMMDD格式,對於任何版本的SQL Server以及SQL Server中的任何語言和dateformat設置,都應該可以。

+0

好吧,所以當我插入日期它像這樣進入數據庫: 2012/12/12 00:00:00 那麼,我應該如何將今天的日期格式與它進行比較? –

+0

@OziOz:SQL Server中的DATETIME類型是一種二進制數字格式 - 它沒有與其關聯的字符串格式。您可以使用任何字符串格式輸出它 –

+0

sO可以幫助我嗎? –