当我通过以下格式插入数据库的asp.net应用程序日期将数据插入sql server 2008数据库时
“2011年6月10日”
这是错误的,我需要插入“dd / mm / yyyy”或“yyyy / mm / dd”格式。为什么会发生这种情况
答案 0 :(得分:1)
如果数据库端的数据类型是datetime
或date
(在sql server 2008上),则将日期插入'10 june 2011'
或{ {1}}或'6/10/2011'
。如果您看到数据实际显示为'2011-06-10'
,则更有可能因为您的数据类型为'10 June 2011'
或varchar
。如果是这种情况并且该字段仅用于保留日期,我建议您将数据类型更改为实际为nvarchar
或datetime
。
答案 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)
此博客将帮助您设置sql-server 2008的默认日期格式。
答案 3 :(得分:0)
试试这个link。这显示了在通过调用内置函数的SQL Server选择或插入日期之前使用日期格式的指南
答案 4 :(得分:0)
表列数据类型为Nvarchar,因此它以上述格式保存数据,这是错误的。通过运行以下我解决了我的问题
SET DATEFORMAT DMY;
ALTER TABLE #tmpTest ALTER COLUMN MyCol DATE;