繁体   English   中英

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

[英]sql datetime column - insert time as 00:00:00.000

我想在datetime2014-09-20 00:00:00.000 sql server插入datetime

在代码中,日期还包含这样的时间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);

您什么都不需要做。

你是混淆有关的值之间DateTime一个和文字表示DateTime DateTime没有任何隐式格式。 它只具有日期和时间值。 格式概念在获得字符串表示形式时才重要。

例如; 两者之间有什么区别?

12/7/2015 12:00:00 AM
12/7/2015 00:00:00

作为一个值(根据其Ticks属性计算),它们等于1 唯一的区别是它们的字符串表示形式。 第一个是12小时制,第二个是24小时制。

另一方面,SQL Server在datetimedatetime2列类型中将DateTime值保留为二进制。 这意味着,只需将DateTime直接传递给参数化查询 ,SQL Server会将其保存为被映射datetime

顺便说一句,您可以使用DateTime Today属性获取日期部分,其中00:00:00作为时间部分。

DateTime ts = DateTime.Today;

1 :当然,我假设12是月份,7是一天。

在插入数据库时​​,您可以直接使用以下代码,而不是使用C#代码进行转换:

insert into table1(col1) values (dateadd(dd,datediff(dd,0,getdate()),0))
INSERT INTO TABLE_NAME (COLUMNS)
VALUES (DATEADD(DD,0,0)+DATEDIFF(DD,0,GETDATE()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM