vb.net - 如何使用 oledb 查询从 datediff 函数中获取所有值并且已导入来自 excel 文件的数据
问题描述
我想显示 excel 中的所有值,使用oledb query datediff
哪个值将使用来自该条件的数据date created
并last login < 20
显示该条件下的所有值,但我在使用 datediff 查询时遇到了问题。我不知道如何使用 Excel 数据值使用 datediff 查询。有谁能够帮助我?
这是代码:
dta = New OleDbDataAdapter("select * from [Sheet1$] WHERE
datediff(FORMAT([Last Login Date], 'dd/mm/yyyy'),FORMAT([Last Login
Date], 'dd/mm/yyyy')) > 20", conn)
解决方案
你说你的新代码是:
dta = New OleDbDataAdapter("select * from [Sheet1$] WHERE datediff(day,[Last Login Date],[Date Active / Create Date]) > 90", conn)
根据您应该使用的规范,d
而不是day
调用的第一个参数值DateDiff
。
你应该把它放在引号内,所以"d"
不要只是d
.
但是要在 VB.NET 中的字符串变量中使用引号,您应该将引号加倍。像这样:""d""
。
所以你可以试试这个:
dta = New OleDbDataAdapter("select * from [Sheet1$] WHERE datediff(""d"",[Last Login Date],[Date Active / Create Date]) > 90", conn)
这对你有用吗?
编辑:还要标记@CharlesMay 关于切换日期字段以获得正值的评论。
编辑2:
由于您是通过来自 VB.NET 的 OleDb 连接执行此查询,因此您可能需要在查询中使用单引号。
dta = New OleDbDataAdapter("select * from [Sheet1$] WHERE datediff('d',[Last Login Date],[Date Active / Create Date]) > 90", conn)
不过,我不确定。我目前无法对其进行测试。这些都只是建议。