【发布时间】:2015-05-21 15:02:54
【问题描述】:
如何在 MySQL 中选择 1970 年 1 月 1 日?
在 C# 中使用 SELECT '1970-01-01' 不会返回有效的 DateTime 对象。
如果返回null,我希望它返回纪元日期,例如
SELECT IFNULL(MAX(`created`), '1970-01-01') `lastcreated`
FROM `tickets`
WHERE `accnum` = 20088
【问题讨论】:
-
那么,您发布问题只是为了能够发布答案?
-
@JohnBollinger 是的,这很平常。我搜索并找不到答案,因此将其添加到 SO 以防其他人将来想知道同样的事情。
-
@JohnBollinger:来自Can I answer my own question?,“如果您有一个您已经知道答案的问题,并且您想公开记录该知识,以便其他人(包括您自己)可以找到它稍后,您可以在 Stack Exchange 网站上提出和回答您自己的问题。To encourage people to do this,每次您提出问题时,页面底部都会有一个复选框。”
-
使用 epoch 作为魔术值来指示不存在显式值通常是不好的做法。为什么不在您的应用程序代码中处理
NULL案例? -
@DannyBeckett:好吧,我认为这仍然没有正确处理
NULL值,因为它再次使用了魔法值。为什么不简单地让this.LastTicket成为null(然后根据需要正确处理显式值的缺少,例如向用户显示“没有以前的票”而不是“1970 年1 月1 日” )?但这与您的问题相差很远。至于“尽可能在 DB 层做”,我认为这是一个常见的错误——业务逻辑确实不属于数据库,是许多 DBA 生活的祸根。