3

我有两个约会FromDatetoDate

转换如下日期并将其作为参数传递给存储过程:

两个变量都是 DateTime FromDate,DateTime toDate 变量

初始值就像{10/1/2013 12:00:00 AM}

我已使用以下代码将其转换为{10/1/2013 00:00:00}

  sparamFromDate.Value = FromDate.ToString("yyyy-MM-dd HH:mm:ss");

  sparamToDate.Value = toDate.ToString("yyyy-MM-dd HH:mm:ss");

这给了我 FromDate 的预期结果:2013-10-11 00:00:00.000

但我需要以下格式的 todate 我如何在代码中转换它?

迄今为止 : 2013-10-11 23:59:59.000

4

4 回答 4

5
toDate.ToString("yyyy-MM-dd 23:59:59.000");

toDate 只是日期还是具有时间组件都没有关系 - 输出将是相同的,并且是您想要的。

于 2013-10-11T04:52:02.263 回答
2

我相信您要求 toDate 包括该日期内的所有分钟,而不管日历时间的实际时间部分如何。

以下表达式应实现该结果:

toDate.Date.Add(new TimeSpan(0, 23, 59, 59, 999)).ToString("yyyy-MM-dd HH:mm:ss.nnn");

沃尔的答案实际上更容易。

您还应该使用 InvariantCulture 来执行ToString()操作,因为您最终可能会使用“:”或“-”以外的其他内容作为日期和时间字段分隔符。这可能会使您的数据库引擎感到困惑。

于 2013-10-11T04:54:10.610 回答
1

您可以使用以下方法获取一天结束的 DateTime,然后获取 ToString():

toDate.Date.AddDays(1).AddMilliseconds(-1)
于 2013-10-11T05:08:34.520 回答
0
toDate.Value = toDate.ToString("yyyy-MM-dd HH:mm:ss.nnn");
于 2013-10-11T04:53:09.710 回答