【问题标题】:How to get record of today's inserted data in SQL Server in C# windows form application如何在 C# windows 窗体应用程序中获取今天在 SQL Server 中插入的数据的记录
【发布时间】:2013-12-04 11:44:51
【问题描述】:

我正在 VS2010 c# 中开发一个应用程序来从 SQLServer 获取单行数据并将其插入 MySQL。

在此我必须检查今天在 SQL Server 表名 RAW_S001T01 中使用 SQL Server 查询插入了多少条记录。

我试过谷歌但没有得到确切的答案。 我试过下面的查询

SELECT        Date_Time
FROM            RAW_S001T01
WHERE        (Date_Time = { fn CURDATE() })
ORDER BY Date_Time DESC

但没有得到正确的输出。

请帮助我正确查询。

提前致谢。

【问题讨论】:

  • 您的 Date_Time 列采用什么格式?如果这也包括时间(如您的命名所暗示的那样),您将只能找到在最后 3 毫秒内插入的记录...

标签: c# mysql sql-server


【解决方案1】:

如果您只想要RAW_S001T01 中的记录,其中Date_Time 列等于今天的日期,您可以像这样修改您的 WHERE 子句:

SELECT        Date_Time
FROM          RAW_S001T01
WHERE         Date_Time = CONVERT(date, getdate())
ORDER BY      Date_Time DESC

GETDATE() 是一个 SQLServer 函数,它将返回今天的日期,例如 2013-11-20 14:05:54.943。将其转换为DATE 以仅保留日期部分,即2013-11-20

【讨论】:

    【解决方案2】:

    如果我理解了您的问题,您只需统计 Date_time 列今天添加的记录数。希望我没有记错。
    试试这个;

    SELECT        Count(Date_Time) as No_Of_records_today
    FROM          RAW_S001T01
    WHERE        (Date_Time = getdate()) 
    

    【讨论】:

      【解决方案3】:

      感谢您的建议得到正确答案,即

      SELECT Date_Time FROM RAW_S001T01
      WHERE  Date_Time >= CONVERT(DateTime, DATEDIFF(DAY, 0, GETDATE()))
      ORDER BY Date_Time DESC
      

      【讨论】:

      • @Ashok_Karale 如果您只需要今天的日期,则不必使用DATEDIFF。正如我在回答中建议的那样,您为什么不直接使用WHERE Date_Time = GetDATE()
      • @AlexB 你也是正确的,但是出了点问题,我没有得到任何结果,所以我只是认为这可能是通过强制转换的,在这里我得到了我们可以转换为 DATE 类型的答案从而删除日期时间的时间部分。
      • 好的,如果对你有帮助,别忘了验证答案:-)
      • @AlexB 是的。谢谢:-)
      猜你喜欢
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 2013-10-04
      • 1970-01-01
      • 2021-09-23
      相关资源
      最近更新 更多