【发布时间】:2016-09-29 11:49:37
【问题描述】:
我正在开发一个将日期时间存储在 SQL Server 数据库中的应用程序。其中一些是存储在 UTC 中的时间点(例如日志项日期时间),而另一些是字面日期/时间(例如“在 7 月 20 日下午 4 点服用 X 药物,与您所在的时区无关)。
问题是它们都具有日期和时间组件,因此使用 datetime2 列类型对两者都有意义。我们现在处于这样一种情况,即在我们的应用程序中,日期/时间列是 UTC 时间点还是字面日期/时间通常是不清楚的。
区分这两种情况的最常见做法是什么?我可以想到这些选项:
1) 以 ...Utc 结束所有 UTC 列,而文字日期/时间列没有特殊结尾。
2) 以 ...Literal 结束所有文字列,而 UTC 日期/时间列没有特殊结尾。
3) 为 UTC 列提供数据类型 datetime2 和文字日期/时间列 datetimeoffset。
【问题讨论】:
-
你能改变表格并添加一个新列吗?例如。一个标志列
isUTC显示您是否是 UTC 时间... -
我经常看到#1(并且自己使用它)。我还没有看到#2“在野外”。我不建议#3
标签: sql sql-server utc