0

好的,这是场景,我需要在 mysql 中插入一个特定的日期。每次插入此日期时,我都会得到 0000-00-00。

每次用户在每月 1 日和 20 日之间付款时,wb_due-date 列都会将月份增加 1

前任。我有一个默认值wb_paid-date = 2013-10-15 and wb_due-date = 2013-10-20。现在 User1 在 2013-10-15 支付,在我点击按钮后,保存在 wb_due-date 的日期是 0000-00-00 而不是 2013-11-20

看看我的代码

Function iterate(ByVal d As Date) As String
        Dim m As Integer = d.Month
        If d.Month >= 1 And d.Month <= 11 Then
            m += 1
        ElseIf d.Month = 12 Then
            m = 1
        End If
        Return m
    End Function

cmd = New MySqlCommand("INSERT INTO tbl_billing(wb_paid-date, wb_due-date) 
VALUES(CURDATE(), iterate(Now.Date) , con)
4

1 回答 1

0

首先,让我们修复您的功能:

Function iterate(ByVal d As DateTime) As String
    Return d.AddMonths(1).ToString("yyyy-MM-dd")
End Function

此外,如果您将字符串日期放入命令中,则几乎可以肯定您做错了什么。让我们这样做:

Function iterate(ByVal d As DateTime) As DateTime
    Return d.AddMonths(1)
End Function

然后我们将修复您的 Sql 命令:

cmd = New MySqlCommand("INSERT INTO tbl_billing(wb_paid-date, wb_due-date) VALUES(CURDATE(), ? " , con)
cmd.Parameters.Add("?", SqlDbType.DateTime).Value = iterate(Today)
于 2013-10-10T19:03:29.900 回答