gpt4 book ai didi

c# - SQL Server 使用 datetime2 查询今天的日期

转载 作者:行者123 更新时间:2023-11-30 22:18:45 25 4
gpt4 key购买 nike

我有一个 SQL Server 数据库,当我在屏幕上打开它时,我希望它只显示今天添加的记录。

我将日期存储在名为 DateAdded 的字段中,它是 DateTime2 数据类型。

我试过了

string dateAdded = today.ToShortDateString();

string query = "SELECT CustomerID, Title, FirstName, LastName, AppStatus
FROM Customer
WHERE DateAdded ='" + dateAdded + "'";

这显示没有我认为的记录,因为它具有与日期一起存储的时间属性。

我在网上搜索试图找到答案,但似乎没有一个是专门针对今天添加的记录的。

我还需要根据用户输入搜索日期范围,它可以在任何范围内,例如从 09/01/2013 到 18/03/2013 的查看记录。

为此编写 sql 查询的最佳方法是什么?

编辑 - 我的答案

Carl 给出的答案有效,但我不明白如何更改值以便我可以有不同的日期范围。我虽然应该在这里发布我的最终结果,这是我根据收到的答案得出的,所以它可能会对其他人有所帮助。 :)

using (SqlConnection conn = new SqlConnection(connectionString))
{
int year = date1.Year;
int month = date1.Month;
int day = date1.Day;

string dateAdded = year + "-" + month + "-" + day + " ";

int year2 = date2.Year;
int month2 = date2.Month;
int day2 = date2.Day;

string dateAdded2 = year2 + "-" + month2 + "-" + day2 + " ";

string query = "SELECT CustomerID, Title, FirstName, LastName, AppStatus, DateAdded FROM Customer WHERE DateAdded >= @date1 AND DateAdded <= @date2";

using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("date1", dateAdded + "00:00:00");
cmd.Parameters.AddWithValue("date2", dateAdded2 + "23:59:59");
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(holder);
}
}

最佳答案

根据 OP 的响应将 SQL 更改为此

DECLARE @StartDate DATETIME2, @EndDate DATETIME2

SET @StartDate = DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
SET @EndDate = DATEADD(day, DATEDIFF(day, 0, GETDATE()+1), 0)

SELECT CustomerID, Title, FirstName, LastName, AppStatus
FROM Customer
WHERE DateAdded >= @StartDate AND DateAdded < @EndDate

这将获取当前日期的任何内容(您可以将 Getdate() 替换为您选择的可重用日期)

关于c# - SQL Server 使用 datetime2 查询今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com