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


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

主题:请教关于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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jimmyhwang
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jimmyhwang
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
jimmyhwang
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

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

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


加好友 发短信
等级:幼狐 帖子:178 积分:1228 威望:0 精华:0 注册:2014/1/23 0:48:00
  发帖心情 Post By:2014/5/11 15:47:00 [显示全部帖子]

其实我这里省略了好多列。。。 完整的应该还有其他
Dim sCols() As String = {..., ...,"AddTime"}
Dim dCols() As String = {..., ...,"日期"}
把后面的“AddTime”和“日期”去掉。采用for each 单独进行赋值就没问题了。问题已经解决。

 回到顶部