Vb.net 如果编程日期没有时间,但sql日期有时间,dotNet如何处理参数化日期
可怕的标题,对吗?我想看看堆栈溢出是否比我在其他工作中受到1000次干扰时测试某个东西快:) 我正在更新一个旧的VB net应用程序,并尝试在运行过程中重构一些逻辑。该应用程序在几个表中查找单个日期的数据,并将该视图写入文件 用SQL编写查询,我将得到Vb.net 如果编程日期没有时间,但sql日期有时间,dotNet如何处理参数化日期,vb.net,parameters,sqlcommand,Vb.net,Parameters,Sqlcommand,可怕的标题,对吗?我想看看堆栈溢出是否比我在其他工作中受到1000次干扰时测试某个东西快:) 我正在更新一个旧的VB net应用程序,并尝试在运行过程中重构一些逻辑。该应用程序在几个表中查找单个日期的数据,并将该视图写入文件 用SQL编写查询,我将得到 SELECT * FROM table WHERE CAST(FLOOR(CAST(table.date AS float))AS datetime) = '15-Jul-2010' 理想情况下,我会使用 SELECT * FROM table
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实例中
这两个有可比性吗?我会得到我期望的结果吗?是的,两者是可比较的,SqlClient库会将.net类型转换为sql类型。您仍然需要截断sql查询中的时间部分,因此可以使用以下内容:
SELECT * FROM table WHERE FLOOR(CAST(table.date AS float)) = FLOOR(CAST(@input AS float))
您不必转换回datetime,只需比较浮动即可。什么是table.date sql类型?因此堆栈溢出更快!:-)