以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  日期时间问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186442)

--  作者:朱女士
--  发布时间:2023/5/3 16:36:00
--  日期时间问题
老师您好!
     我有这么一个问题,我把表中的(bs,开工时间)两个字段取不重复值,同时放到一个数组中,然后分别取出数值,在数据表中作为条件计算,可是,在运用中“开工时间”的数组,取出后秒数全部为”零“,我的目的“原样取出。怎么解决这个问题?请指教,谢谢!我的代码:

 Dim drs As List(Of DataRow)
Dim Nas As New List(Of String) \'bs长度18
Dim Nbs As New List(Of String) \'bs长度6
Dim Ncs As New List(Of String) \'bs长度12
Dim l As Integer

Dim Arys As List(Of String()) 
Arys = DataTables("实时工序计算表").GetValues("bs|开工时间") 
For Each Ary As String() In Arys
    Dim time As Date = CCDate(ary(1))
    Dim zzl As Double = DataTables("实时工序计算表").Compute("sum(重量)", "bs=\'" & Ary(0) & "\'and  开工时间=#" & Ary(1) & "#")
     MessageBox.Show(Ary(0) & "/" & Ary(1) & "/" & ZZL)
    drs = DataTables("实时工序计算表").Select("[bs]=\'" & Ary(0) & "\'and 开工时间=#" & Ary(1) & "#")
    
    For Each dr As DataRow In drs
        If dr IsNot Nothing Then
          
            Dim gxhs As Double = dr("工序耗时")
            Dim dzl As Double = dr("重量")
            Dim sjhs As Double = Round2((dzl * gxhs / zzl), 2)
             \'MessageBox.Show(dzl & "/" & sjhs & "/" & dr("bs"))
            If sjhs <> 0 Then
                
                dr("实际耗时") = Round2((dzl * gxhs / zzl), 2)
            Else
                MessageBox.Show(ary(0))
            end if
        End if
    Next 
    
    \'    MessageBox.Show(Ary(0) & "|" & Ary(1))
Next
 
比如数据表里“开工时间是:2023-04-22 08:59:22,而MessageBox.Show(Ary(1) 的数据为:2023-04-22 08:59:00,所以,我的上述代码有的数据没有计算。我感觉上述“绿色”标记语句,有问题吧。



--  作者:有点蓝
--  发布时间:2023/5/3 17:52:00
--  
代码没有问题。GetValues都是按数据库实际值获取的,除非数据库存储的本来就是2023-04-22 08:59:00
--  作者:朱女士
--  发布时间:2023/5/4 8:19:00
--  
上述代码中取出的ary(1)是字符型的,在条件开工时间=#" & Ary(1) & "#")中作为日期时间类型用,不需要进行数据类型转换吗?
--  作者:有点蓝
--  发布时间:2023/5/4 8:41:00
--  
不需要