我想在datetime
中插入sql server
列,时间为2014-09-20 00:00:00.000
在代码中,日期还包含这样的时间: -
2014-09-20 10:40:00.000
在sql中插入时,我需要将时间部分转换为2014-09-20 00:00:00.000
。
当我像这样进行转换时: -
DateTime ts = DateTime.Now;
ts = new DateTime ( ts.Year, ts.Month, ts.Day, 0, 0, 0 ) ;
结果: -
12/7/2015 12:00:00 AM
如何赚取时间00:00:00.0000
Linq插入代码: -
item.InOutDate
包含Date + Time
item.InOutDate = new DateTime ( item.InOutDate.Year, item.InOutDate.Month, item.InOutDate.Day, 0, 0, 0 );
ctx.tblTable.Add(item);
答案 0 :(得分:2)
您对DateTime
的{{1}}和文字表示的值感到困惑。 DateTime
没有任何隐式格式。它只有日期和时间值。当您获得字符串表示时,格式概念仅很重要。
例如;这些之间有什么区别?
DateTime
作为一个值(根据Ticks
property计算),它们等于 1 。唯一的区别是他们的字符串表示。第一个是12小时时钟格式,第二个是24小时时钟格式。
另一方面,SQL Server将12/7/2015 12:00:00 AM
12/7/2015 00:00:00
值保留为datetime
和datetime2
列类型中的二进制值。这意味着,只需将您的DateTime
值直接传递到parameterized query,SQL Server就会将其保存为DateTime
which is mapped。
顺便说一句,您可以使用datetime
的{{3}}来获取日期部分DateTime
作为时间部分。
00:00:00
1 :当然我假设12是月,7是白天。
答案 1 :(得分:0)
插入数据库时,您可以直接使用以下代码,而不是使用C#代码进行转换:
insert into table1(col1) values (dateadd(dd,datediff(dd,0,getdate()),0))
答案 2 :(得分:0)
INSERT INTO TABLE_NAME (COLUMNS)
VALUES (DATEADD(DD,0,0)+DATEDIFF(DD,0,GETDATE()))