1

嗨,我有这段代码,它给了我错误:

值的类型与列类型不匹配无法在 time_in_am 列中存储 <10/1/2012 3:43:30 PM>。预期类型是 MySqlDateTime。

“time_in_am”的 mySQL 数据类型是 DateTime。

dataRow = dataSet.Tables(0).NewRow()
dataRow("time_in_am") = DateTime.Now
dataSet.Tables(0).Rows.Add(dataRow)
4

4 回答 4

1

我相信 MySQL 接受的 DateTime 格式是yyyy-mm-dd hh:mm:ss

因此,将代码的第二行更改为:

dataRow("time_in_am") = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

有关每种格式“魔术字符串”的含义,请参见此处

如果您发现自己经常使用它(这很可能),您可以创建一个扩展:

Imports System.Runtime.CompilerServices

Public Module MyExtensions

    <Extension()>
    Public Function ToMySql(d As Date) As String
        Return d.ToString("yyyy-MM-dd HH:mm:ss")
    End Function

End Module

现在您可以在代码中使用它,如下所示:

dataRow("time_in_am") = DateTime.Now.ToMySql()
于 2012-10-01T11:21:16.177 回答
0
Return d.toString("yyyy-MM-dd HH:mm:ss")

会解决的.. :)

于 2012-10-02T05:49:13.793 回答
0

我认为另一种最短的方法是使用 Format()

dataRow("time_in_am") = Format(DateTime.Now, "yyyy-MM-dd HH:mm:ss")

于 2021-03-13T12:29:45.343 回答
-1

我正在寻找一种方法来将此 vb6 日期转换为 mysql 接受的值转换为 vb.net;

'将日期转换为mysql格式

Public Function convToYMD(strDate)

strYear = CStr(Year(strDate))
strmonth = CStr(Month(strDate))
strday = CStr(Day(strDate))
strhour = CStr(Hour(strDate))
strminute = CStr(Minute(strDate))
strsecond = CStr(Second(strDate))

If Len(strhour) = 1 Then
    strhour = "0" & strhour
ElseIf Len(strhour) = 0 Then
    strhour = "00"
End If

If Len(strminute) = 1 Then
    strminute = "0" & strminute
ElseIf Len(strminute) = 0 Then
    strminute = "00"
End If

If Len(strsecond) = 1 Then
    strsecond = "0" & strsecond
ElseIf Len(strsecond) = 0 Then
    strsecond = "00"
End If

If Len(strday) = 1 Then
    strday = "0" + strday
ElseIf Len(strday) = 0 Then
    strday = "00"
End If

If Len(strmonth) = 1 Then
    strmonth = "0" & strmonth
ElseIf Len(strmonth) = 0 Then
    strmonth = "00"
End If

convToYMD = strYear + "-" + strmonth + "-" + strday + " " + strhour + ":" + strminute + ":" + strsecond

end function

找到了这段代码并解决了我的问题!我刚刚在模块内添加

 If DateFormat.ShortDate Then
         Return d.ToString("yyyy-MM-dd")
    ElseIf DateFormat.LongDate Then
         Return d.ToString("yyyy-MM-dd HH:mm:ss")
    End If

非常感谢!

于 2013-12-09T03:56:05.997 回答