0

我有以下代码:

"SELECT top 1 * FROM CensusFacility_Records WHERE Division_Program = 'Division 1' AND JMS_UpdateDateTime = '" & date & "'"

JMS_UpdateDateTime 列中的日期格式为:8/22/2013 12:00:07 AM 如何确保查询中的“日期”转换为正确的时间格式?

我的 SQL 查询中的日期变量是真实/日期时间。我希望它与 JMS_UpdateDateTime 字段中的格式相匹配。

4

2 回答 2

1

如果您的数据库表足够小,您可以将值转换为datetime查询中的实际值,并将值作为datetime参数传递,这样您就可以比较日期而不是比较字符串。

如果您的表有相当数量的记录,请不要这样做,因为它会占用性能。

SELECT top 1 *
FROM CensusFacility_Records
WHERE Division_Program = 'Division 1' 
AND cast(JMS_UpdateDateTime as datetime) = @dateParam

我相信 SQL Server 将能够读取数据库中的字符串并自动正确转换它,假设您的服务器设置是标准的。

但无论如何,请使用参数化 SQL 而不是像您所拥有的那样传递字符串。

于 2013-08-22T19:42:19.487 回答
1

您的 SQL 格式DateTime实际上在这里有点红鲱鱼 - 它可以以前端(例如 Management Studio)选择的任何方式显示。这里重要的是你的date变量是明确的格式。考虑到这一点,我建议使用 ISO 8601 日期/时间格式,例如date.ToString("o")(假设date是 DateTime)。

于 2013-08-22T19:51:02.613 回答