我有以下代码:
"SELECT top 1 * FROM CensusFacility_Records WHERE Division_Program = 'Division 1' AND JMS_UpdateDateTime = '" & date & "'"
JMS_UpdateDateTime列中的日期格式为: 2013年8月22日12:00:07 我怎样才能确保我的日期"在查询中转换为正确的时间格式?
我的SQL查询中的日期变量是实际/日期时间。我希望它与JMS_UpdateDateTime字段中的格式匹配。
答案 0 :(得分:1)
如果您的数据库表足够小,您可以将值转换为查询中的实际datetime
,并将值作为datetime
参数传递,因此您要比较日期而不是比较字符串。
如果你的表有相当数量的记录,不要这样做,因为这将是一个性能困难。
SELECT top 1 *
FROM CensusFacility_Records
WHERE Division_Program = 'Division 1'
AND cast(JMS_UpdateDateTime as datetime) = @dateParam
我相信SQL Server将能够读取数据库中的字符串并自动正确地投射它,假设您的服务器设置是标准的。
但无论如何,请使用参数化SQL而不是像你一样传入一个字符串。
答案 1 :(得分:1)
您的SQL DateTime
的格式实际上是一个红色的鲱鱼 - 它可以以前端(例如Management Studio)选择的任何方式显示。这里重要的是您的date
变量采用明确的格式。考虑到这一点,我建议使用ISO 8601日期/时间格式,例如date.ToString("o")
(假设date
是日期时间)。