asp.net和sql server的日期格式问题

时间:2011-11-17 04:24:09

标签: asp.net sql-server date

当我通过以下格式插入数据库的asp.net应用程序日期将数据插入sql server 2008数据库时

  

“2011年6月10日”

这是错误的,我需要插入“dd / mm / yyyy”或“yyyy / mm / dd”格式。为什么会发生这种情况

5 个答案:

答案 0 :(得分:1)

如果数据库端的数据类型是datetimedate(在sql server 2008上),则将日期插入'10 june 2011'或{ {1}}或'6/10/2011'。如果您看到数据实际显示为'2011-06-10',则更有可能因为您的数据类型为'10 June 2011'varchar。如果是这种情况并且该字段仅用于保留日期,我建议您将数据类型更改为实际为nvarchardatetime

答案 1 :(得分:0)

使用DateTime.TryParseExact()方法解析日期。

string inputDate="10 June 2011";
string []format ={ "dd MMMM yyyy","dd MMM yyyy"};
DateTime date;

if (DateTime.TryParseExact(inputDate, format, CultureInfo.InvariantCulture, 
                           DateTimeStyles.None, out date))
 {
     Console.WriteLine("Valid " + date);
 }

答案 2 :(得分:0)

答案 3 :(得分:0)

试试这个link。这显示了在通过调用内置函数的SQL Server选择或插入日期之前使用日期格式的指南

答案 4 :(得分:0)

表列数据类型为Nvarchar,因此它以上述格式保存数据,这是错误的。通过运行以下我解决了我的问题

SET DATEFORMAT DMY;

ALTER TABLE #tmpTest ALTER COLUMN MyCol DATE;