我有一個查詢,比較日期,是這樣的:Sql Server的轉換日期
SELECT * FROM TABLE WHERE MYDATETIME < @DATE
列MYDATETIME是一個DATETIME列,但是當我從網絡形式收到的日期我收到它的日期格式,在PHP創建一個DateTime對象:
$date = DateTime::createFromFormat('d/m/Y',$date);
的問題是當查詢比較所使用一天的時間以及日期,但是當我在PHP創建之日起就得到了系統的時間。
我只想比較日期,而不是一天中的時間。
哪個選項是對數據庫的性能更好,使用PHP創建對象:
DateTime::createFromFormat('d/m/Y H:i', $date." 00:00");
或查詢轉換?
SELECT * FROM TABLE WHERE CONVERT(DATE,MYDATETIME) < CONVERT(DATE, @DATE)
這可能是一個嚴重的設計缺陷。留下您的數據庫與日期時間,並讓網絡表單推送日期時間。 Boom done – FirebladeDan
我需要表中其他原因的日期時間,但webform中的字段必須是Date,因爲我想獲取特定日期範圍的記錄,忽略時間 –
如果要使用數據庫選項(其中我認爲很好),確保你在那裏創建了正確的索引。如果您在MyDateTime上有索引,那麼將其轉換爲不會包含這些索引。 – Sagar