2010-12-19 84 views
1

這是我的SQL查詢。我在這個查詢的表格中有數據。但是這個查詢不會返回任何結果。我應該使用此查詢返回結果的數據是什麼?

Select Prod_Batch_ID,tbl_product.product_name, Quantity,DATE_FORMAT(Production_Date, '%W, %D %M %Y') from tbl_production,tbl_product where tbl_production.Product_ID = tbl_product.Product_ID and (Production_Date between STR_TO_DATE('2010-01-01 00:00:00.000','%m/%d/%Y')and DATE_ADD(STR_TO_DATE('2010-12-12 00:00:00.000','%m/%d/%Y'), INTERVAL 1 DAY)) 

表中的Production_Date列是時間戳類型。在這裏使用str_to_date將問題轉換爲日期?

+0

你確定它應該返回的數據? – zsalzbank 2010-12-19 05:12:13

+0

@codethis是的。我相信它應該返回數據... – rgksugan 2010-12-19 05:21:50

回答

1

您的STR_TO_DATE格式的字符串是錯誤的。嘗試

%Y-%m-%d 

或者

%Y-%m-%d %h-%i-%s 

你需要匹配的日期格式,以您所傳遞的字符串。

2

問題是,您無法查詢時間戳列。引用SQL Server聯機叢書:

SQL Server時間戳數據類型有 與時間或日期無關。 SQL 服務器時間戳是二進制數 ,它們指示 中的相對序列,其中數據修改發生在 數據庫中。時間戳數據類型 最初實現爲支持 SQL Server恢復算法。

+0

所以你說我應該將列轉換爲日期數據類型...? – rgksugan 2010-12-19 05:40:08

+0

如果您正在使用SQL Server並打算將它用作日期/時間,那麼是從時間戳中更改它。時間戳旨在用於其他目的,非常難以使用。如果你使用的是mySQL,時間戳並不是很糟糕,但如果你有這個選項,使用datetime仍然會更好。 – 2010-12-19 05:48:59

+0

我很好奇,如果dateSQL在mySQL中與在SQL Server中一樣無用,那麼在mySQL中創建一個快速表。 mySQL並沒有那麼糟糕,我可以通過'2010-12-01'和'2010-12-05'之間的時間戳查詢: – 2010-12-19 05:51:43

相關問題