簡體   English   中英

SQL日期語句

[英]SQL date Statement

我需要一些幫助來弄清楚SQL語句。

我知道我想表達的意思。

我使用的是php,因此它不需要是SQL,它可以充當過濾器。

偽代碼

$query="SELECT * FROM MyTable WHERE 'TIS'  is not older than 2 days or empty  = ''$ORDER"; }

我表格中列名的TIS是我以03-12-09 (d,m,y)格式存儲日期。 $ORDER用於根據其他字段(而非日期)中的值對值進行排序。

我在看

SELECT * 
FROM orders
WHERE day_of_order >
(SELECT DATEADD(day,-30, (SELECT MAX(day_of_order) FROM orders)) AS "-30 Days");

但我不太認為即時通訊與此有關。

謝謝

請嘗試以下操作:

SELECT *
  FROM MyTable
  WHERE COALESCE(TIS, SYSDATE) > SYSDATE - INTERVAL '2' DAY
  $ORDER

我不知道您使用的是哪個數據庫-上面的數據庫使用Oracle處理時間間隔的方法。 如果您使用的是SQL Server,則應關閉以下各項:

SELECT *
  FROM MyTable
  WHERE COALESCE(TIS, GETDATE()) > DATEADD(Day, -2, GETDATE())
  $ORDER

在MySQL中,請嘗試以下操作:

SELECT *
  FROM MyTable
  WHERE COALESCE(TIS, NOW()) > DATE_SUB(NOW(), INTERVAL 2 DAYS)
  $ORDER 

我希望這有幫助。

所以,我在所有這一切中迷失了。

如何解決的:

  • 首先我了解到,由於鮑勃·賈維斯(Bob Jarvis)的資格,MySql不支持我正在使用的語句。

_其次在vincebowdren的評論中,“強烈”建議我將該字段上的數據類型更改為Date ,但實際上我沒有,這是一個字符串。

對於我來說,嘗試在具有字符串值的字段上對日期使用SQL操作真是愚蠢。

所以我只是RTFM: http : //dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

和:

mysql> SELECT something FROM tbl_name -> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

然后繼續將字段值更改為日期。

這是我完美的查詢:

$query="SELECT * FROM MyTable WHERE DATE_SUB(CURDATE(),INTERVAL 2 DAY) <= TIS OR TIS = 0000-00-00 $ORDER "; }

我要感謝海報的幫助。

暫無
暫無

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

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