簡體   English   中英

php / mysql-date_format和時間部分

[英]php/mysql - date_format and the time portion

抱歉,如果已經多次回答了這個問題,但是我找不到答案,就感到困惑。

我有一個mysql查詢,當我在數據庫中運行它時,它似乎輸出了我想要的結果-但是,當我通過PHP運行查詢時,它無法正確輸出。

在數據庫中,日期存儲如下:

2009-08-13T00:00:00

我要執行的操作是不顯示比今天更早的數據。 因此,在where子句中執行以下操作:

        WHERE dateField1 >= DATE_FORMAT(now(),'%Y-%m-%d') AND dateField2 >= DATE_FORMAT(now(),'%Y-%m-%d')

我的意圖是剝離時間部分,因為我一直在努力尋找一種將now()的時間部分轉換為午夜的方法。

當我在PHPMyadmin上運行它時,這似乎起作用,但是當我運行php腳本時,它卻不起作用。

有任何想法嗎?

非常感謝!

當我在PHPMyadmin上運行它時,這似乎起作用,但是當我運行php腳本時,它卻不起作用。

您不是在使用sprintf東西來構建字符串嗎? 如果是這樣,你需要躲避%與另一個%

無論如何,您都可以使用函數DATE()

WHERE `dateField1` > DATE(NOW())

尼克是對的。 我同意這一點。

如果使用sprintf()函數進行SQL調用,則可以將查詢轉換為:

  $query = sprintf("SELECT * FROM SOME_TABLE WHERE id=%s AND dateField1 >= DATE_FORMAT(now(),'%%Y-%%m-%%d') AND dateField2 >= DATE_FORMAT(now(),'%%Y-%%m-%%d')", $id);
//Then submit $query for SQL query processing...

使用sprintf()時,PHP將%視為類型說明符。

為了避免這種情況,您需要在MySQL格式字符串前面再添加一個%,即%% Y或%% m或%% d。 MySQL查詢的實際輸出將再次變為%Y或%m或%d。

暫無
暫無

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

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