0

入力した日付に基づいて、データベースから最後のエントリを取得しようとしています。SQLが希望どおりに機能していません。これが私のSQLです

SELECT TOP 1 * FROM BILLS_HITS ORDER BY DATETIMEADD DESC

誰かがそれで何か悪いことを見ることができますか?SQLは、日付が「2012年6月6日7:10:11 AM」のレコードを返しますが、2012年6月10日のレコードは返しません。

4

1 に答える 1

3

データベースにとらわれないアプローチを使用します。

SELECT *
FROM
    BILLS_HITS
WHERE
    DATETIMEADD = (SELECT MAX(DATETIMEADD) FROM BILLS_HITS)

キーワードはMSSQLに固有ですが、TOP上記のクエリはMSSQLを含む他のほとんどのDBMSで機能します。

また、選択を高速化するために、列にインデックスを付けることをお勧めしますDATETIMEADD

それが機能しない場合は、DATETIMEADD列がvarchar / char / text文字列だけでなく、適切な日付/日時タイプであることを確認してください。

于 2012-06-12T01:32:02.090 に答える