我不知道如何格式化VB中的时间戳,因此它以这种格式插入到MYSQL数据库中:
YYYY-MM-DD 00:00:00
我试过了:
Dim timestamp As Date = TimeValue(Now)
它将其格式化为0001-01-01 12:33:38
- 如果yyyy-mm-dd
实际上是正确的日期,这将是正确的。
答案 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