标题:难题:VB查询SQL出现“从char数据类型到datetime数据类型的转换导致datetim ...
只看楼主
dajun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-15
结帖率:0
 问题点数:0 回复次数:3 
难题:VB查询SQL出现“从char数据类型到datetime数据类型的转换导致datetime值越界”的问题
Dim t1, t2 As String
Dim a, b, c, d, e, f As Integer

        a = Year(DTP1.Value)  
        b = Month(DTP1.Value)
        c = Day(DTP1.Value)
        d = Format(Hour(DTM1.Value), "00")
        e = Format(Minute(DTM1.Value), "00")
        f = Format(Second(DTM1.Value), "00")
      
t1 = Str(a) & "-" & Str(b) & "-" & Str(c) & "" & Str(d) & ":" & Str(e) & ":" & Str(f)
                  
d = d + 2  '时间加2小时
      
t2 = Str(a) & "-" & Str(b) & "-" & Str(c) & " " & Str(d) & ":" & Str(e) & ":" & Str(f)
     
Data1.RecordSource = "select * from AABB where TT > '" & Format(t1, "yyyy-mm-dd hh:mm:ss") & "' and TT < '" & Format(t2, "yyyy-mm-dd hh:mm:ss") & "' and GG > 10 and JJ > 1 "   

同时,统计出来的数据存入access数据库,并用MSFlexGrid表格显示出来,该数据库的日期时间字段为:
Data2.Recordset.Fields(0) = "" & Format(t1, "yyyy-mm-dd hh:mm:ss") & " - " & Format(t2, "yyyy-mm-dd hh:mm:ss") & ""   


TT为远程SQL数据表AABB中的日期时间字段,采用Timer控件触发,自动统计其中每2小时内的其它字段数据,即每2小时自动统计一次,每统计到跨月的时间就出错,例如2010-6-30 23:00:00----2010-7-1 1:00:00,就会出现“从char数据类型到datetime数据类型的转换导致datetime值越界”的问题,统计的时间段只要不跨年和月就不会出问题,本人探索很长一段时间了,实在没办法,跪求高手帮忙!能解决该问题的,一定会成为VB编程专家!
搜索更多相关主题的帖子: SQL datetime char 难题 类型 
2010-09-21 09:38
dajun
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-9-15
得分:0 
好像没有人回答,好失望

dajun
2010-09-21 11:54
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
得分:0 
错误在哪里?
错误的代码在哪里?
2010-09-21 16:46
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
你先用以下小程序测试一下,看看你的思路是不是有错误

Private Sub Command1_Click()

Dim d As Date

d = Date & " " & Time
Print d
Print d + 1 / 12          ' 2 小时, 1小时为 1/24 ,可以把这个值定义为常量.
Print Format(d, "yyyy-mm-dd hh:mm:ss")
End Sub

------------------------
Date 数据类型
Date 变量存储为 IEEE 64 位(8 个字节)浮点数值形式,其可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,而时间可以从 0:00:00 到 23:59:59。任何可辨认的文本日期都可以赋值给 Date 变量。日期文字须以数字符号 (#) 扩起来,例如,#January 1, 1993# 或 #1 Jan 93#。

Date 变量会根据计算机中的短日期格式来显示。时间则根据计算机的时间格式(12 或 24 小时制)来显示。

当其他的数值类型要转换为 Date 型时,小数点左边的值表示日期信息,而小数点右边的值则表示时间。午夜为 0 而中午为 0.5。负整数表示 1899 年 12 月 30 日之前的日期。

授人于鱼,不如授人于渔
早已停用QQ了
2010-09-21 17:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321036-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020352 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved