VB:格式化Mysql时间戳

时间:2011-07-12 16:47:29

标签: mysql sql vb.net visual-studio

我不知道如何格式化VB中的时间戳,因此它以这种格式插入到MYSQL数据库中:

YYYY-MM-DD 00:00:00

我试过了:

Dim timestamp As Date = TimeValue(Now)

它将其格式化为0001-01-01 12:33:38 - 如果yyyy-mm-dd实际上是正确的日期,这将是正确的。

1 个答案:

答案 0 :(得分:6)

你错过了这一点。

sql数据库中的实时时间戳从不格式化YYYY-MM-DD 00:00:00。这就是它们在查询或数据窗口中的显示方式。这些值实际上是存储的二进制格式,通常不是人类可读的,尽管mysql可能仍然使用unix时间。

关键是你甚至不需要知道实际格式是什么。这应该由您的数据库连接提供程序处理,而不是自己格式化。从VB.Net正确地为mysql插入/更新数据库时间戳应该如下所示:

Dim sql As String = "UPDATE `Table` Set MyColumn= @DateValue WHERE ID= @ID"
Using cn As New MySqlConnection("Your connection string here"), _
      cmd As New MySqlCommand(sql, cn)

    cmd.Parameters.Add("@DateValue", MySqlDbType.Datetime).Value = Now
    cmd.Parameters.Add("@ID", MySqlDbType.Int32).Value = 12345

    cn.Open()
    cmd.ExecuteNonQuery()
End Using

无需格式化。您也可以这样编写查询:

Dim sql As String = "UPDATE `Table` Set MyColumn= current_timestamp WHERE ID= @ID"

但如果确实坚持创建字符串,它将如下所示:

Now().ToString("yyyy-MM-dd HH:mm:ss")

使用此处提供的格式字符串说明:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx