Foxtable(狐表)用户栏目专家坐堂 → 突发异常


  共有1854人关注过本帖树形打印复制链接

主题:突发异常

帅哥哟,离线,有人找我吗?
石四
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
突发异常  发帖心情 Post By:2018/1/31 9:47:00 [只看该作者]

今天公司里所有电脑打开系统某个窗口时都弹出下面提示,导致这个窗口不能正常运行.其他窗口有些也涉及日期格式但正常.

Year, Month, and Day parameters describe an un-representable DateTime.

 

有遇到过相同问题的吗?怎么破?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 10:00:00 [只看该作者]

你窗口afterLoad事件写了什么代码?窗口有没有sql形式表格?

 

有没有转换成日期的语句?一般是空值形式的日期值导致的。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/1/31 10:10:00 [只看该作者]

Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim d As Integer = Date.Today.Day
Dim mt1,mt2 As Date

If m > 2 Then
    mt1 = New Date(y, m - 2, d)
    mt2 = New Date(y, m, d)
Else
    mt1 = New Date(y - 1, 10 + m, d)
    mt2 = New Date(y, m, d)
End If

 

貌似是上面那段代码出问题,我直接改成

mt1 = New Date(2018, 1, 1)
mt2 = New Date(2018, 1, 31)

测试就能通过.但是之前用那段代码一直正常的呀.


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/1/31 10:17:00 [只看该作者]

Dim y As Integer = Date.Today.Year
Dim m As Integer = Date.Today.Month
Dim d As Integer = Date.Today.Day
Dim mt1,mt2 As Date
Dim cmd As New SQLCommand
cmd.C
Dim dt As DataTable

'If m > 2 Then
 '   mt1 = New Date(y, m - 2, d)
  '  mt2 = New Date(y, m, d) '获取本月的最后一天
'Else
 '   mt1 = New Date(y - 1, 10 + m, d)
  '  mt2 = New Date(y, m, d) '获取本月的最后一天
'End If
 mt1 = New Date(2018, 1, 1)
    mt2 = New Date(2018, 1, 31) '获取本月的最后一天
cmd.CommandText = "SELECT DISTINCT 客户名称,收货仓,司机,装卸,车号 Fro m {销售明细} WHERE 日期 >= #" & mt1 & "# And 日期 <= #" & mt2 & "#"
dt = cmd.ExecuteReader()

完整的代码


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 10:36:00 [只看该作者]

日计算错误呗,每个月的最后一天都可能是不同的。28、29、30、31都有可能。如果要用你原来的逻辑,就这样写


Dim mt1,mt2 As Date

mt1 = Date.Today.AddMonths(-2)
mt2 = Date.today


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/1/31 10:45:00 [只看该作者]

以下是引用有点甜在2018/1/31 10:36:00的发言:

日计算错误呗,每个月的最后一天都可能是不同的。28、29、30、31都有可能。如果要用你原来的逻辑,就这样写


Dim mt1,mt2 As Date

mt1 = Date.Today.AddMonths(-2)
mt2 = Date.today

标注没有删除,实际是取当天之前三个月时间段.


 回到顶部
帅哥哟,离线,有人找我吗?
石四
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/1/31 10:47:00 [只看该作者]

哦,11月没有31日.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/1/31 10:48:00 [只看该作者]

自行学习日期变量的加减

 

http://www.foxtable.com/webhelp/scr/1337.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47449 积分:251065 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2018/1/31 10:51:00 [只看该作者]

1、去控制面板修改日期时间格式。

2、或者:

cmd.CommandText = "SELECT DISTINCT 客户名称,收货仓,司机,装卸,车号 Fro m {销售明细} WHERE 日期 >= #" & mt1 & "# And 日期 <= #" & mt2 & "#"

改为:

cmd.CommandText = "SELECT DISTINCT 客户名称,收货仓,司机,装卸,车号 Fro m {销售明细} WHERE 日期 >= #" & Format(mt1,"MM/dd/yyyy") & "# And 日期 <= #" & Format(mt2,"MM/dd/yyyy") &  "#"
[此贴子已经被作者于2018/1/31 10:51:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
石四
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2018/1/31 10:53:00 [只看该作者]

以下是引用有点甜在2018/1/31 10:36:00的发言:

日计算错误呗,每个月的最后一天都可能是不同的。28、29、30、31都有可能。如果要用你原来的逻辑,就这样写


Dim mt1,mt2 As Date

mt1 = Date.Today.AddMonths(-2)
mt2 = Date.today

三个月即90天前是这样用吧?

Date.Today.AddDays(-90))


 回到顶部
总数 11 1 2 下一页