可怕的头衔对吗?我以为我会看到Stack溢出比我测试的东西更快,而我从其他工作中获得了一千次中断:)
我正在更新一个旧的VB网络应用程序,并尝试重构一些逻辑。该应用程序在几个表中查找单个日期的数据,并将该视图写入文件。
在SQL中编写查询我得到相当于
SELECT * FROM table
WHERE CAST(FLOOR(CAST(table.date AS float))AS datetime) = '15-Jul-2010'
理想情况下我会使用
SELECT * FROM table WHERE date=@input
并将日期对象作为参数添加到System.Data.SqlClient.SqlCommand实例
这两者是否具有可比性?我能得到我期望的结果吗?
答案 0 :(得分:3)
是的,两者具有可比性,SqlClient库将.net类型转换为sql类型。你仍然需要在sql查询中截断时间部分,所以你可以使用类似的东西:
SELECT * FROM table WHERE FLOOR(CAST(table.date AS float)) = FLOOR(CAST(@input AS float))
您不必转换回日期时间,但可以只比较浮点数。