簡體   English   中英

SQL Server:如何從日期時間列中選擇具有特定日期的記錄

[英]SQL Server: how to select records with specific date from datetime column

我對 SQL 很陌生,希望這里有人可以幫助我:

我有一個表格,其中一列dateX格式為日期時間並包含標准日期。 如何從此表中選擇此 dateX 等於某個日期(例如 2014 年 5 月 9 日)的所有記錄?

我嘗試了以下操作,但即使我在此日期有幾條記錄,也不會返回任何內容。

SELECT     *
FROM         dbo.LogRequests
WHERE     (CONVERT(VARCHAR(10), dateX, 101) = '09/05/14')

編輯:在數據庫中,上面的示例如下所示,使用 SQL 2012: 2014-05-09 00:00:00.000

非常感謝您對此的任何幫助,邁克。

最簡單的方法是轉換為日期:

SELECT *
FROM dbo.LogRequests
WHERE cast(dateX as date) = '2014-05-09';

通常,此類表達式會排除索引的使用。 但是,根據網絡上的各種消息來源,上述內容是 sargable(意味着它將使用索引),例如thisthis

我傾向於使用以下內容,只是出於習慣:

SELECT *
FROM dbo.LogRequests
WHERE dateX >= '2014-05-09' and dateX < '2014-05-10';

用於 SQL Server 中的完美DateTime匹配

SELECT ID FROM [Table Name] WHERE (DateLog between '2017-02-16 **00:00:00.000**' and '2017-12-16 **23:59:00.999**') ORDER BY DateLog DESC
SELECT *
FROM LogRequests
WHERE cast(dateX as date) between '2014-05-09' and '2014-05-10';

這將選擇兩個日期之間的所有數據

暫無
暫無

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

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