如何将日期时间插入到 SQL 数据库表中? 有没有办法通过 C #/. NET 中的 insert 命令插入这个查询?
如果你有实际的时间,GETDATE()就是你要找的函数
GETDATE()
在表中需要有一个 日期时间列。然后可以执行以下插入操作来插入当前日期:
INSERT INTO MyTable (MyDate) Values (GetDate())
如果它不是今天的日期,那么你应该能够使用字符串和 指定日期格式:
INSERT INTO MyTable (MyDate) Values (Convert(DateTime,'19820626',112)) --6/26/1982
您也不必总是转换字符串,通常您可以这样做:
INSERT INTO MyTable (MyDate) Values ('06/26/1982')
SQLServer 会为您解决这个问题。
DateTime 值的插入方式应与单引号包围的字符串类似:
'20100301'
SQLServer 支持许多可接受的日期格式,大多数开发库应该提供一系列类或函数来正确插入日期时间值。但是,如果是手工操作,使用 DateFormat区分日期格式和使用通用格式非常重要:
DateFormat
Set DateFormat MDY --indicates the general format is Month Day Year Insert Table( DateTImeCol ) Values( '2011-03-12' )
通过设置 dateformat,SQLServer 现在假设我的格式是 YYYY-MM-DD而不是 YYYY-DD-MM。
YYYY-MM-DD
YYYY-DD-MM
设置数据格式
SQLServer 还识别一种通用格式,它总是以相同的方式进行解释: YYYYMMDD,例如 20110312。
YYYYMMDD
20110312
如果您询问如何使用 T-SQL 插入当前日期和时间,那么我建议使用关键字 CURRENT_TIMESTAMP。例如:
CURRENT_TIMESTAMP
Insert Table( DateTimeCol ) Values( CURRENT_TIMESTAMP )
myConn.Execute "INSERT INTO DayTr (dtID, DTSuID, DTDaTi, DTGrKg) VALUES (" & Val(txtTrNo) & "," & Val(txtCID) & ", '" & Format(txtTrDate, "yyyy-mm-dd") & "' ," & Val(Format(txtGross, "######0.00")) & ")"
在 vb 中使用所有文本类型变量。
DateTime 值的插入方式应该与单引号包围的字符串类似 '20201231' 但是 在许多情况下,需要将它们显式强制转换为日期时 CAST(N'20201231' AS DATETIME),以避免带有 CONVERION _ IMPLICIT 警告的错误执行计划对性能产生负面影响。海尔就是一个例子:
'20201231'
CAST(N'20201231' AS DATETIME)
CREATE TABLE dbo.T(D DATETIME) --wrong way INSERT INTO dbo.T (D) VALUES ('20201231'), ('20201231')
--better way INSERT INTO dbo.T (D) VALUES (CAST(N'20201231' AS DATETIME)), (CAST(N'20201231' AS DATETIME))