如何在mssql2005中的datetime数据字段中插入或更新数据

时间:2011-03-08 12:01:09

标签: asp.net sql-server-2005

我有一个文本框,显示日期为2011年5月1日,但数据库coumis格式为datetime ...如何在数据库的日期时间列中输入日期。 ..

如何为此获取sqlquery?

5 个答案:

答案 0 :(得分:1)

您可以将该格式转换为类似这样的DateTime

   string dateString = "01-May-2011";
   string format = "dd-MMM-yyyy";
   var result = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture);

如果您使用的是LINQ to SQL,甚至ADO的参数类型为DateTime,则可以自动完成对SQL理解的格式的转换。

如果您通过手动连接字符串来构建SQL(不推荐!),您应该尝试重新转换为格式为'yyyyMMdddd'的字符串(根据AdaTheDev的注释进行更正,注意单引号)。 sql可能会识别或不识别其他格式,具体取决于客户端和SQL Server上的语言设置

答案 1 :(得分:0)

SQL Server非常适合接受日期时间值。如果您将日期作为参数传递,您可以在其周围加上引号('01 -May-2011')并忽略时间。数据库将自动填写默认时间,以便您不必担心它。

答案 2 :(得分:0)

将字段值作为nvarchar传递给数据库,并使用以下命令将其强制转换为日期时间。

Declare @dt nvarchar(20)
SET @dt = '01-May-2011'
select cast(@dt as datetime)

答案 3 :(得分:0)

只需将其转换为dateTime

即可
DateTime _ConvertedDate = Convert.ToDateTime(txtDate.Text);

这会转换为日期时间

答案 4 :(得分:0)

有一点需要注意的是,没有时间的日期将被解释为2011年5月1日上午12点。 IE,没有指定时间,SQL Server将始终将时间设置为午夜。因此,如果您只将日期作为字段,并且您希望从5月1日开始记录,则无法执行

WHERE datefield = '5/1/2011'

这将找到日期字段为5月1日午夜的记录。你必须这样做

WHERE datefield >= '5/1/2011' and datefield < '5/2/2011'

这与你的问题无关,但我看到它绊倒了很多人。我自己也包括在内。