【问题标题】:how to add current date time in bigint field如何在 bigint 字段中添加当前日期时间
【发布时间】:2009-09-28 02:40:06
【问题描述】:

我需要在数据库的 bigint 字段中添加当前日期时间...然后仅显示日期格式:2009 年 10 月 1 日。

我目前正在考虑将值存储在字符串变量中,然后将其转换为 int... 字符串 s = DateTime.Now.ToString();

我不知道下一步该怎么做.. 请帮忙

【问题讨论】:

    标签: c# asp.net sql-server database


    【解决方案1】:

    您可以将刻度数存储为您的 bigint 值。刻度表示自 0001 年 1 月 1 日以来经过的 1/10,000 毫秒数。

    DateTime.Now.Ticks;
    

    始终可以使用接受 long 的构造函数将其转换回 DateTime:

    DateTime storedTime = new DateTime(ticksFromDatabase);
    

    要格式化您的日期,只需使用任何标准 date format strings。自定义格式字符串实际上可能效果更好,我只是仔细阅读了它们,它看起来不像您想要的格式内置了一个。这应该有效:

    date1.ToString("MMMM d, yyyy", CultureInfo.CreateSpecificCulture("en-US"))
    

    【讨论】:

    • 我将它存储了很长时间 s= DateTime.Now.Ticks;但我正在使用 SQL 数据源在网格视图中显示它。我应该在选择查询中写什么...???我的 SQL 查询是.. "SELECT MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded, MachineGroups.CanBeDeleted, COUNT(Machines.MachineName) AS 'No. of PCs' FROM MachineGroups FULL OUTER JOIN 机器上的机器。 MachineGroupID = MachineGroups.MachineGroupID GROUP BY MachineGroups.MachineGroupID, MachineGroups.MachineGroupName, MachineGroups.MachineGroupDesc, MachineGroups.TimeAdded
    • 您需要挂钩 RowDataBound 事件并重新格式化日期。有什么理由不能使用 sql DateTime 列吗?这将是最简单的事情,因为您可以使用 SQL 选择语句对其进行格式化,并轻松地将其传输到 c# 中的 DateTime 对象。
    • 不,我不能使用日期时间,因为整个公司代码都在 bigint 中......:(我知道这对我来说也很容易......但我真的不知道如何在使用 select 语句的网格视图...请帮帮我...
    • 我无法弄清楚如何使用 datebound 如何处理此 DateTime dt1 = DateTime.Parse(e.Row.Cells[3].Text); e.Row.Cells[3].Text = dt1.Date.ToString();
    【解决方案2】:

    我会使用智能日期键,因为使用 SQL 更容易找到它:

    20090927235000
    yyyyMMddhhmmss
    

    这样,如果您想查找某一天发生的任何事情,您可以这样做:

    select * from tbl where datecol between 20090927000000 and 20090927240000
    

    从而使数据验证很多更容易,即使您使用的是 ORM。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-21
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多