Foxtable(狐表)用户栏目专家坐堂 → 请教关于mysql Unix 时间戳的转换问题


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

主题:请教关于mysql Unix 时间戳的转换问题

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
请教关于mysql Unix 时间戳的转换问题  发帖心情 Post By:2014/5/10 17:27:00 [只看该作者]

如题。。百度上看到是这样的。select from_unixtime(1218290027),但是我要下载订单数据下来。要转换成yyyy-mm-dd,
这样代码要如何写。表格为orderlist,列是AddTime。。请教大师们
[此贴子已经被作者于2014-5-10 17:28:06编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/10 17:45:00 [只看该作者]

Dim dtStart As DateTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1))
Dim dtResult As DateTime  =dtStart.AddSeconds(1218290027)
MessageBox.show(dtResult)


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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/10 18:18:00 [只看该作者]

不理解如何套进去。。AddTime是mysql数据库unix时间戳, 日期是狐表里datatable yyyy-mm-dd格式的列。如何在下载订单的时候让日期转化,不然就会出现格式错误提示。
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim sCols() As String = {"AddTime"}
Dim dCols() As String = {"日期"}
cmd.C
cmd.CommandText = "SELECT * From orderson a INNER JOIN orderlist b ON a.OrderNumber = b.OrderNumber Order By orderson.WeiZhi "
dt = cmd.ExecuteReader()
For Each dr As DataRow In dt.DataRows
    If DataTables("订单表").Find("编号 = '" & dr("OrderNumber") & "' And ID ='" & dr("ID") & "'") Is Nothing Then
            Dim nr As DataRow = DataTables("小包发货单").AddNew()
            For i As Integer =0 To sCols.Length -1
                nr(dCols(i)) = dr(sCols(i))
            Next
    End If
Next
[此贴子已经被作者于2014-5-10 18:35:09编辑过]

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2014/5/10 18:43:00 [只看该作者]

Dim d1 As Date = #1/1/1970 08:00:00#

Dim dr1,dr2,nr As DataRow
Dim cmd As New SQLCommand
Dim dt1,dt2 As DataTable

Dim sCols() As String = {"AddTime"}
Dim dCols() As String = {"日期"}
cmd.C
cmd.CommandText = "SELECT * From orderson a INNER JOIN orderlist b ON a.OrderNumber = b.OrderNumber Order By orderson.WeiZhi "
dt1 = cmd.ExecuteReader()
dt2 = DataTables("订单表")

dt2.StopRedraw()
For Each dr1 In dt.DataRows
    dr2= dt2.Find("编号 = '" & dr("OrderNumber") & "' And ID ='" & dr("ID") & "'")
    If dr2 Is Nothing Then
       nr = DataTables("小包发货单").AddNew()    
       nr("日期") = d1.AddSeconds(dr("AddTime"))
            
    End If
Next

dt2.ResumeRedraw()


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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/10 20:07:00 [只看该作者]

能转换日期,时间都是0:00:00。并且提示字符串类型转换成date 转换无效。
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140510200309.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2014/5/10 20:31:00 [只看该作者]

Dim d1 As Date = #1/1/1970 08:00:00#
Dim dt1,dt2 As DataTable
Dim dr1,dr2,nr As DataRow
Dim sql as string ="SELECT * From orderson a INNER JOIN orderlist b ON "
sql+ = "a.OrderNumber = b.OrderNumber Order By orderson.WeiZhi"

Dim cmd As New SQLCommand
cmd.C
cmd.CommandText =sql 
dt1 = cmd.ExecuteReader()
dt2 = DataTables("订单表")

dt2.StopRedraw()
For Each dr1 In dt.DataRows
    dr2= dt2.Find( "编号 = '" & dr("OrderNumber") & "' And ID ='" & dr("ID") & "'")
    If dr2 Is Nothing Then
       nr = DataTables("小包发货单").AddNew()    
       nr("日期") = d1.AddSeconds(Val(dr("AddTime")))      
    End If
Next

dt2.ResumeRedraw()
[此贴子已经被作者于2014-5-10 20:39:14编辑过]

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/10 20:45:00 [只看该作者]

还是同样的问题。没解决。同样提示字符串类型转换为Date失效
Dim d1 As Date = #1/1/1970 08:00:00#
Dim cmd As New SQLCommand
Dim dt As DataTable

Dim sCols() As String = {"AddTime"}
Dim dCols() As String = {"日期"}
cmd.C
cmd.CommandText = "SELECT * From (orderson INNER JOIN orderlist ON orderson.OrderNumber = orderlist.OrderNumber) INNER JOIN vipuser ON orderlist.UserName = vipuser.UserName Order By orderson.WeiZhi "
dt = cmd.ExecuteReader()

DataTables("小包发货单").StopRedraw()

For Each dr As DataRow In dt.DataRows
    If DataTables("小包发货单").Find("编号 = '" & dr("OrderNumber") & "' And ID ='" & dr("ID") & "'") Is Nothing Then
            Dim nr As DataRow = DataTables("小包发货单").AddNew()
            nr("日期") = d1.AddSeconds(Val(dr("AddTime")))
            For i As Integer =0 To sCols.Length -1
                nr(dCols(i)) = dr(sCols(i))
            Next
    End If
Next

DataTables("小包发货单").ResumeRedraw()
[此贴子已经被作者于2014-5-10 20:45:54编辑过]

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2014/5/10 21:12:00 [只看该作者]

例子說話

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


加好友 发短信
等级:版主 帖子:1693 积分:12129 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/5/10 21:22:00 [只看该作者]

以下是引用jimmyhwang在2014-5-10 20:45:00的发言:
还是同样的问题。没解决。同样提示字符串类型转换为Date失效
Dim d1 As Date = #1/1/1970 08:00:00#
Dim cmd As New SQLCommand
Dim dt As DataTable

Dim sCols() As String = {"AddTime"}
Dim dCols() As String = {"日期"}
cmd.C
cmd.CommandText = "SELECT * From (orderson INNER JOIN orderlist ON orderson.OrderNumber = orderlist.OrderNumber) INNER JOIN vipuser ON orderlist.UserName = vipuser.UserName Order By orderson.WeiZhi "
dt = cmd.ExecuteReader()

DataTables("小包发货单").StopRedraw()

For Each dr As DataRow In dt.DataRows
    If DataTables("小包发货单").Find("编号 = '" & dr("OrderNumber") & "' And ID ='" & dr("ID") & "'") Is Nothing Then
            Dim nr As DataRow = DataTables("小包发货单").AddNew()
            nr("日期") = d1.AddSeconds(Val(dr("AddTime")))
            For i As Integer =0 To sCols.Length -1
                nr(dCols(i)) = dr(sCols(i))  '这里好像不妥  翻过来就是  nr("日期")=dr("AddTime"),这两个的类型不同
            Next
    End If
Next

DataTables("小包发货单").ResumeRedraw()
[此贴子已经被作者于2014-5-10 20:45:54编辑过]


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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/10 22:03:00 [只看该作者]

问题解决了。。因为addnew在前,前面列了日期的对接,所以执行Addnew时就会出错。后面的nr(“日期”)等于是重新赋值了。只要把前面的对接删除了就没问题了。非常感谢~还有Bin, 其实两种方案都是一样的可以用。:)

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