【问题标题】:Trying to convert a decimal to datetime either in SQL Server or C#尝试在 SQL Server 或 C# 中将小数转换为日期时间
【发布时间】:2014-08-22 05:50:29
【问题描述】:

我有这个小数 411409629.172566,它等于 01/14/2014。我正在从竞争对手的软件中转换一些数据,在 SQLite DB 中,日期以小数形式存储。

在软件中,日期就是我上面写的。几天来,我一直试图弄清楚这个日期。如何将该小数转换为该日期?

【问题讨论】:

  • 十进制“411409629.172566”和“01/14/2014”如何相等,请提供更多细节。
  • 您可能需要提供一些其他日期来帮助确定对应关系 - 这不是 2014-01-14 的标准 SQLite 日期格式,也不是 Unix 时间。
  • 使用小数表示 DateTime 的方法有很多种。其中之一在此处给出的解决方案中进行了讨论stackoverflow.com/questions/11690372/…

标签: c# sql-server datetime decimal system.data.sqlite


【解决方案1】:

以下在我的控制台中打印“1/14/2014”:

new DateTime(2001, 1, 1).AddSeconds(411409629.172566).ToShortDateString()

或使用等效的 SQL 服务器语法:

select dateadd(ss, 411409629.172566, '01-01-2001') as 'date'

...但如果没有更多样本,我们无法确定这总是正确的转换。

【讨论】:

【解决方案2】:

你可以这样尝试:

System.DateTime dt = new System.DateTime(1970, 1, 1).AddSeconds(yourDecimalValue);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 2013-10-30
    • 2021-05-16
    • 1970-01-01
    • 2019-03-07
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多