2010-12-19 1 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

+0

@ codeethisはい。私はそれがデータを返す必要があると確信しています... – rgksugan

答えて

1

あなたのSTR_TO_DATE形式の文字列が間違っています。あなたはあなたが渡している文字列に日付形式を一致させる必要がある

%Y-%m-%d 

それとも

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

を試してみてください。

2

問題は、タイムスタンプ列に対して照会できないことです。 SQL Serverオンラインブックから引用すると:

をSQL Serverのtimestampデータ型は、時間や日付を行うに 何もしています。 SQL サーバーのタイムスタンプは、 の でデータの変更が行われた の相対シーケンスを示すバイナリ番号 です。タイムスタンプデータタイプ は、最初は のSQL Server回復アルゴリズムをサポートするために実装されました。

+0

私は日付のデータ型に列を変換する必要がありますと言う...? – rgksugan

+0

SQL Serverを使用していて日付/時刻のように使用する予定の場合は、タイムスタンプから変更してください。タイムスタンプは他の目的に使用することを目的としており、操作が非常に困難です。もしあなたがmySQLタイムスタンプを使用しているなら、それほど悪くはないが、そのオプションを持っているならdatetimeを使う方が良い。 –

+0

datetimeがSQL Serverと同じようにmySQLで役に立たなかったのかどうか不思議だったので、mySQLのクイックテーブルを作成しました。 mySQLはそれほど悪くないので、私はタイムスタンプに対して: '2010-12-01'と '2010-12-05'の間で照会できました –

関連する問題