以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于日期时间转化比较的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=16404)

--  作者:gzdw
--  发布时间:2012/2/13 12:33:00
--  关于日期时间转化比较的问题

有一个简单的表,其中“日期时间”列包括日期及时间的数据。
现在想统计日期为“2011-12-31”的记录数
使用以下方法却得不到正确数。

Dim s1 As Integer
Dim s2 As Integer

Dim cmd As New SQLCommand
cmd.CommandText = "Select count(序号)  From {测试} where  [日期时间] = #2011-12-31# "
s1= cmd.ExecuteScalar()

cmd.CommandText = "Select count(序号)  From {测试} where  [日期时间] > #2011-12-30# and  [日期时间] < #2012-1-1#"
s2= cmd.ExecuteScalar()
Output.Show(s1)
Output.Show(s2)

执行后,s1为0,s2为47。
而直接从表中数数为26。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.table


--  作者:czy
--  发布时间:2012/2/13 12:37:00
--  
日期列的数据是DateLongTime类型的。
--  作者:gzdw
--  发布时间:2012/2/13 12:42:00
--  

主要问题是用第二个表达式还是得不到正确的结果?(第一个SQL明显是错的)

把“DateLongTime”类型的日期数据,转化为“date”类型应该怎么写,并加入到这个SQL表达式中?

 

[此贴子已经被作者于2012-2-13 12:43:08编辑过]

--  作者:czy
--  发布时间:2012/2/13 12:46:00
--  
Dim s2 As Integer
Dim cmd As New SQLCommand
cmd.CommandText = "Select count(序号)  From {测试} where  [日期时间] >= #2011-12-31 00:00:00# And [日期时间] < #2012-01-01 00:00:00#"
s2= cmd.ExecuteScalar()
Output.Show(s2)
[此贴子已经被作者于2012-2-13 12:47:05编辑过]

--  作者:gzdw
--  发布时间:2012/2/13 12:52:00
--  

这个表达式是正确。

只是我在实际应用时,开始时间及结束时间都变量,却都是\'date"格式, 如何转换?


--  作者:狐狸爸爸
--  发布时间:2012/2/13 13:01:00
--  
Dim d As Date = date.now
Dim s As String = Format(d,"yyyy-MM-dd hh:mm:ss")
output.show(s)

--  作者:gzdw
--  发布时间:2012/2/13 13:03:00
--  
谢谢!