vb.net sql查询语句 win7 xp win10 问题!时间函数!求高手指点!

问题描述

我正在写个winform项目,用的vb.net+SqLite。在写到一个查询函数:button1。。。。'查询当天销售合计记录'button1。。。。'查询当天销售合计记录Dimtime1AsDateTime=DateTime.Today()DimstrLabelAsString="selectsum([销售金额])asw,sum([总销售数量])ass,sum([收到金额])ast,sum([合计毛利])asefromXSTJwhere[销售时间]like('"&time1&"%')orderby[销售单据]desc"'button2。。。。‘查询一个月内的销售合计记录Dimtime1,time2AsDateTimetime1=DateSerial(Year(Now()),Month(Now()),1)‘这个月一号time2=DateSerial(Year(Now()),Month(Now())+1,0)’这个月最后一天DimstrLabelAsString="selectsum([销售金额])asw,sum([总销售数量])ass,sum([收到金额])ast,sum([合计毛利])asefromXSTJ[销售时间]BETWEEN('"&time1&"%')and('"&time2&"%')orderby[销售单据]desc"'button3。。。。’查询一年内销售合计记录Dimtime1AsDateTimeDimstrLabelAsString="selectsum([销售金额])asw,sum([总销售数量])ass,sum([收到金额])ast,sum([合计毛利])asefromXSTJwhere[销售时间]like('"&time1.year&"%')orderby[销售单据]desc"

其他语句我就不写了就是查询语句问题。我在win7下用vs2010写的,win7运行所有查询都没有问题,都可以查询到数据。。但是让我纳闷的是,换xp下运行或者最新win10运行(win8没试过),结果只有一年销售统计有记录,每天统计的和一个月统计的没有数据。。。难道win7和xp的查询sql函数不一样吗?怎么在C#或者vb.net中使用sql的datediff()函数呢?求高手指点!!!分不多先给20

解决方案

解决方案二:
查看SQL的版本是否一样
解决方案三:
把代码放到查询分析器运行一下就知道怎么回事了。
解决方案四:
时间最好不要用between....用专门的时间比较函数
解决方案五:
引用1楼xclzteb的回复:

查看SQL的版本是否一样

在哪里查看,代码查询器没问题
解决方案六:
引用3楼letusgo1234567890的回复:

时间最好不要用between....用专门的时间比较函数

我知道有datediff()比较函数但是不知道在vb.net中怎么运用的。。我直接用&符号添加不能运行有错误
解决方案七:
时间用like??你数据库里的时间不是时间类型,而是个字符串?
解决方案八:
time1是个时间类型你把这个时间类型的变量直接拼接进SQL语句里它会隐式转换为字符串类型隐式转换,是没有格式化的,就是调用的默认的ToString()方法那么如果你操作系统日期格式不是正常的年-月-日时:分:秒而是年-月-日星期上午/下午时:分:秒那么这样拼接进SQL语句里去当然就匹配不上了
解决方案九:
引用7楼Z65443344的回复:

time1是个时间类型你把这个时间类型的变量直接拼接进SQL语句里它会隐式转换为字符串类型隐式转换,是没有格式化的,就是调用的默认的ToString()方法那么如果你操作系统日期格式不是正常的年-月-日时:分:秒而是年-月-日星期上午/下午时:分:秒那么这样拼接进SQL语句里去当然就匹配不上了

数据库里的类型是时间类型datetime因为之前用这个有数据就以为可以查询到呢~~~哦哦,那样的话是不是要用:[销售时间]=‘“&time1&”’来匹配呢?我试试谢谢提醒
解决方案十:
引用7楼Z65443344的回复:

time1是个时间类型你把这个时间类型的变量直接拼接进SQL语句里它会隐式转换为字符串类型隐式转换,是没有格式化的,就是调用的默认的ToString()方法那么如果你操作系统日期格式不是正常的年-月-日时:分:秒而是年-月-日星期上午/下午时:分:秒那么这样拼接进SQL语句里去当然就匹配不上了

[销售时间]=‘“&time1&”’这个还是没结果~~~搞不懂了。。。天啊。。大侠datediff()函数类型怎么运用呢能说下吗?
解决方案十一:
引用7楼於黾的回复:

time1是个时间类型你把这个时间类型的变量直接拼接进SQL语句里它会隐式转换为字符串类型隐式转换,是没有格式化的,就是调用的默认的ToString()方法那么如果你操作系统日期格式不是正常的年-月-日时:分:秒而是年-月-日星期上午/下午时:分:秒那么这样拼接进SQL语句里去当然就匹配不上了

那是不是要把查询到的时间格式化一下!
解决方案十二:
就不应该用本地计算机的时间啊,万一客户端时间不对怎么办?应该取服务器上的时间...getdate()走起
解决方案十三:
你这样写不行的,不信你查下12月
解决方案十四:
感觉应该是日期时间格式问题。本机设定的日期时间格式和数据库里面的格式不一样。
解决方案十五:
"...fromXSTJ[销售时间]BETWEEN('"&time1.ToString("yyyy-MM-dd")&"%')..."

拼SQL的时候都按照上面这样用ToString()进行指定格式的转换。又:[销售时间]前面少个WHERE,这样的语句没出错?
解决方案:

解决方案:
该回复于2015-12-31 23:47:03被版主删除

时间: 2024-10-10 05:18:15

vb.net sql查询语句 win7 xp win10 问题!时间函数!求高手指点!的相关文章

SQL查询语句对象化的实现(C#)

对象|语句   在开发数据库应用的过程难免会编写大量的SQL语句,其中大部份是查询语句:为不同情况编写查询语句是一件很烦琐的事件.用过hibernate或Nhibernate会了解到把SQL查询语句对象化后使用起非常方便和快捷:也大大减少在编写查询SQL语句所带来的错误等问题.        前段时间在编写一个数据处理类的时候同样遇到这个问题,经过一段时间思考和设计现实现了SQL查询语句对象化的功能:在这里我把自己小小的成果共享一下. 在讲解前先看几个例子(数据是SQLServer的Northw

SQL查询语句中的bool类型字段值的写法

  SQL查询语句中的bool类型字段值的写法 没有系统地看过SQL语句的写法说明,只是看了一些常用SQL语句的例子.今天写了条select * from table where sex='true',老是提示标准数据类型不匹配(我用的Access),检查了半天,原来sex字段作为bool(是/否)类型,在SQL语句中其值不需要用''引起来.

15个初学者必看的基础SQL查询语句

本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要正确建立主键和外键的关系. 现在我们来创建几个餐厅订单管理的数据表,一共用到3张数据表,Item Master表.Order Master表和Order Detail表. 创建表: 创建Item Maste

sql-数据库 SQL查询语句 简化语句

问题描述 数据库 SQL查询语句 简化语句 请问 怎样从上面的数据表中查询出下面表的效果?求大神指教 解决方案 group by month 解决方案二: select months 月份type1+type2+type3 总数case when type1>0 then 1 else 0 then 执照1case when type2>0 then 1 else 0 then 执照2case when type3>0 then 1 else 0 then 执照3from(select

hibernate-web后台的sql查询语句问题

问题描述 web后台的sql查询语句问题 我使用spring+hibernate的框架做的后台,在dao层中sql查询语句查询所有select * from tbplayer t1 where nickname='"+shopID+"'就可以查出结果,然后在拼接显示自己想要的内容,但是一旦换成查某个字段select p3_account from tb_player t1 where nickname='"+shopID+"'就报错,说没有psn这列,但是我的语句中

图片-qiushou求SQL查询语句问题, SQL语句忘记怎么写了

问题描述 qiushou求SQL查询语句问题, SQL语句忘记怎么写了 第一列是-主键-地区-销售人员-销售总额, 请问查询-每个地区销售金额最少的人是谁 解决方案 select * from ( select rank() over(partition by region order by total) as rid ,orderid,region,sales,total from salesorder ) t where t.rid = 1 解决方案二: select * from sale

[数据库] SQL查询语句表行列转换及一行数据转换成两列

本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两列数据的方法.子查询的应用.decode函数的用法.希望文章对你有所帮助~ 1.创建数据库表及插入数据 2.子查询统计不同性质的学生总数 3.一行数据转换成两列数据 union all 4.表行列数据转换(表转置) 1.创建数据库表及插入数据 创建数据库.创建学生表并设置主键.插入数据代码如下: --创建数据库 create database StudentMS --使用数据库 use StudentMS --创建学生

sql-数据库新手提问:SQL查询语句

问题描述 数据库新手提问:SQL查询语句 有3张表:学生表(学号,姓名,性别,年龄);课程表(课程号,课程名,学期):成绩表(学号,课程号,分数). 现在根据学号和学期查询某个同学的成绩信息:例如学号为001,学期是1的. 解决方案 select 学生表.姓名 课程表.课程 成绩表.分数 from 学生表,课程表, 成绩表 where 学生表.学号 = 成绩表.学号 and 课程表.课程号 = 成绩表.课程号 and 学生表.学号 = 001 and 课程表.学期 =1

mysql 查询指定日期时间内容sql查询语句

mysql教程 查询指定日期时间内容sql查询语句 在数据库教程设计时必须注意时间字段最好为int(4)这样,保存在数据库的时一个数字型日期时间截,我们可以用mktime函数求出当前日期的时间截进行加减就OK了,下面看实例 $time = time();   //一个月 $lastMonth = mktime(date('h'),date('i'),date('s'),date('m')-1,date('d'),date('y')); $where .= "  dtime < $lastM