如何将datetime插入SQL数据库表?

Sri*_*ari 68 .net sql sql-server sql-server-2005 c#-3.0

如何将日期时间插入SQL数据库表?有没有办法通过C#/ .NET中的insert命令插入此查询?

Tho*_*mas 107

应插入DateTime值,就好像它们是由单引号括起来的字符串:

'20100301'
Run Code Online (Sandbox Code Playgroud)

SQL Server允许许多可接受的日期格式,应该是大多数开发库提供一系列类或函数来正确插入日期时间值的情况.但是,如果您是手动执行此操作,则使用DateFormat和使用通用格式区分日期格式非常重要:

Set DateFormat MDY --indicates the general format is Month Day Year

Insert Table( DateTImeCol )
Values( '2011-03-12' )
Run Code Online (Sandbox Code Playgroud)

通过设置dateformat,SQL Server现在假定我的格式YYYY-MM-DD不是YYYY-DD-MM.

设置日期格式

SQL Server还识别始终以相同方式解释的通用格式:YYYYMMDD例如20110312.

如果您询问如何使用T-SQL插入当前日期和时间,那么我建议使用该关键字CURRENT_TIMESTAMP.例如:

Insert Table( DateTimeCol )
Values( CURRENT_TIMESTAMP )
Run Code Online (Sandbox Code Playgroud)

  • @JerryOL - "Set DateFormat MDY"仅确定SQL如何解释月和日的顺序,而不是确切的格式.你可以自己试试.如果你叫'Set DateFormat DMY`,`2011-03-12`是12月3日.如果你调用`Set DateFormat MDY`,那个日期是3月12日. (3认同)
  • @JerryOL - 顺便说一句,我本可以使用`YMD`或`YDM`并取得同样的效果,但我发现这些格式只有在你没有通过四位数年份时才有用. (2认同)

Abe*_*ler 14

您需要在表中包含datetime列.然后,您可以执行如下插入以插入当前日期:

INSERT INTO MyTable (MyDate) Values (GetDate())
Run Code Online (Sandbox Code Playgroud)

如果它不是今天的日期,那么您应该能够使用字符串并指定日期格式:

INSERT INTO MyTable (MyDate) Values (Convert(DateTime,'19820626',112)) --6/26/1982
Run Code Online (Sandbox Code Playgroud)

您并不总是需要转换字符串,通常您可以执行以下操作:

INSERT INTO MyTable (MyDate) Values ('06/26/1982') 
Run Code Online (Sandbox Code Playgroud)

SQL Server会为您解决这个问题.


ben*_*siu 8

如果你有实际的时间,GETDATE()那就是你想要的功能