将日期和时间插入数据库的 SQL 语法

Posted

技术标签:

【中文标题】将日期和时间插入数据库的 SQL 语法【英文标题】:SQL Syntax to Insert Dates and Times into a Database 【发布时间】: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 【参考方案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

【讨论】:

以上是关于将日期和时间插入数据库的 SQL 语法的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 dateTimePicker 将日期插入 SQL 数据库日期列?

SQL Server:结合日期列和时间列,插入到日期时间列

如何以某种格式将日期和时间插入 SQL Server 数据库? [复制]

在oracle 10g sql plus中将日期和时间插入时间戳

将字符串、浮点数和日期时间值插入 sql 表

如何将当前日期和时间插入到具有 DateTime 类型列的 SQL Server 表中?