机房收费系统中的收取金额查询和余额退还信息查询窗体中,最重要的把sql语句写正确了。在sql语句中把两个时间数据相减。
txtsql = "select * from ReCharge_Info where cast(convert(varchar,date) as datetime) between'" & DTPicker1.Value _
& "'and '" & DTPicker2.Value & "'order by date"
其中用到了 CAST:CAST ( expression AS data_type )
CONVERT:CONVERT (data_type[(length)], expression [, style])
二者都是将某种数据类型的表达式显式转换为另一种数据类型,只是convert更倾向于时间数据类型的转变。
还是因为在数据库设计时设计时date字段数据类型的问题:
如果把date(char(10),null)改成date(datetime,null)就不需要cast()和convert()函数改变格式了。sql语句就可以直接写成:
txtsql = "select * from ReCharge_Info where date between'" & DTPicker1.Value _
& "'and '" & DTPicker2.Value & "'order by date"
写到这发现和我的第一篇博客写的是一回事: http://blog.csdn.net/u010930340/article/details/10416333
一句话:sql语句没有正确执行时,可能是数据类型有冲突!