sql datetime列 - 插入时间为00:00:00.000

时间:2015-12-07 06:39:54

标签: c# sql-server datetime

我想在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);

3 个答案:

答案 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 值保留为datetimedatetime2列类型中的二进制值。这意味着,只需将您的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()))