【问题标题】:Getting DB Server DateTime in application在应用程序中获取数据库服务器日期时间
【发布时间】:2011-03-15 18:34:00
【问题描述】:

我正在使用 Entity 框架,并且在数据库 AddedDate 中有 1 个字段是 DateTime 而不是 null,所以我需要传递 DateTime 值。

但问题是我必须通过数据库服务器日期时间。我该如何在这种情况下进行管理,或者如何让 DB Server datatime 来通过它。

我需要一些独特的解决方案,因为我在很多方面都是这样。

编辑:在我的应用程序中插入/更新时我需要数据库服务器日期时间,以便我可以传递给实体框架对象。

谢谢

【问题讨论】:

  • 什么是DB Server datetime?那是 SQL 日期时间吗?那是 SQL 日期时间吗?还是 DB2、甲骨文?那是内部日期时间还是其他?你有这样的日期时间与当前日期/时间的例子吗?
  • 您是指执行插入/更新操作时数据库服务器上的当前时间吗?
  • 是的,我指的是数据库服务器的当前日期时间,当我插入和更新时

标签: c# sql-server winforms entity-framework


【解决方案1】:

一般来说,如果您使用实体框架并在字段中使用 DateTime,它会自动为您执行来回转换,就像整数、双精度等一样。

除非您的意思是特殊的,即必须用特定格式的 DateTime 值填充的 char[40] 字段。

【讨论】:

  • 我在插入/更新时需要数据库服务器日期时间,以便我可以从我的应用程序发送该日期和时间
【解决方案2】:

您可以通过运行 SELECT GETDATE()) 脚本来获取数据库服务器的日期和时间。

假设您有一个包含 4 个列的表 - 前 3 个是字符串,最后一个是日期时间,您可以通过像这样发出 INSERT SQL 来解决您的问题:

插入 myTable 值('x'、'y'、'z'、SELECT GETDATE())

【讨论】:

  • 我用的是Entity Framework,你知道吗?
【解决方案3】:

你不能使用存储过程,这样你就可以很容易地获取数据库服务器日期时间。

【讨论】:

  • 我正在使用实体框架,您对此有所了解吗?
【解决方案4】:

只需在查询中使用 getdate()。例如:

INSERT INTO your_table (AddedDate, ...other columns) VALUES (getdate(), ...other values)

这基本上要求服务器将自己的当前日期插入到字段中;您无需在本地检索它。

【讨论】:

  • 我正在使用实体框架,您对此有所了解吗?
【解决方案5】:

由于您使用的是实体框架,因此您可以执行以下操作:

var dateQuery = yourDbContext.CreateQuery<DateTime>("CurrentDateTime() ");
DateTime dateFromSql = dateQuery .AsEnumerable().First();

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 1970-01-01
    • 2015-01-26
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多