【问题标题】:SQL Syntax to Insert Dates and Times into a Database将日期和时间插入数据库的 SQL 语法
【发布时间】:2016-07-28 11:19:04
【问题描述】:

在我的项目中,我需要将以下函数(它创建一个要插入数据库的字符串)转换为插入日期时间数据类型的正确语法...有谁知道我可以做到这一点的方法吗?

Public Shared Function sqlString(str As String) As String

    Return "'" & str.Replace("'", "''") & "'"

End Function

【问题讨论】:

  • 标记使用的 dbms。其中许多在日期/时间方面与 ANSI SQL 相去甚远。
  • @jarlh 谢谢,我已经重新标记了。我们插入的 DBMS 是 MS SQL Server 2008
  • 使用参数。使用参数。采用。参数。
  • 数据库参数将使您不必编写额外的解析函数,并将本机处理撇号问题和日期格式。 “这个导入过程只会使用一次”,然后你的应用程序扩展,并且有人继承了 sql 注入问题。
  • 这些“批量”选项可能也值得一看:msdn.microsoft.com/en-us/library/ms175937.aspx

标签: sql sql-server database vb.net sql-server-2008


【解决方案1】:

sql = "INSERT INTO tblModules(ModuleID, ModuleName, NumberUsers, License, Username, ContractID,datetime) VALUES(" & modID & ", " & sqlString(modname) & ", " & numusers & "," & sqlString (license) & ", " & sqlString(username) & ", " & contractID & ","&sqlDateTime(DateTime.Now)&")" 试试这个

【讨论】:

  • 嗨,我不想添加 DateTime。现在,我需要它来复制数据库中的值
  • 声明一个变量并使用它来代替 DateTime.Now
【解决方案2】:

最后,我在 INSERT 语句期间通过分别调用以下函数将值存储为日期或时间

Public Shared Function sqlDate(dt As DateTime) As String

    If dt.Date = Nothing Then

        Return dt.ToString("")

    Else

        Return dt.ToString("yyyy-MM-dd")

    End If

End Function

Public Shared Function sqlTime(dt As DateTime) As String

    Return dt.ToString("hhmmss")

End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 2019-10-06
    • 2011-07-14
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多