AM / PM列名称

时间:2009-01-30 21:27:40

标签: database-design datetime

没有争论以这种方式存储日期时间的相对优点......

如果您有一个存储AM或PM的列,您会将该列称为什么?

修改

我本应该想到,有一群人无法抗拒对这个想法嗤之以鼻......你没有看到我即将这样做,我想这样做,那个我不清楚无法做到这一点的无数原因......但是你们中的一些人仍然觉得自己很骄傲,并且担心自己有多聪明,而不是质疑它的价值和提供有用的东西。< / p>

我也很高兴有这么多人不值得这种诽谤并提出一些好主意。谢谢你们的想法。

大多数值组都有名称,1-24的值称为小时,1-12个月等。但对于AM / PM,组的名称,集合的名称,域名的名称...它们显然不是“meridiem”,因为那是中午单点的名称。这就像把AD和BC称为基督或主宰。而BCE或CE可能适合“时代”专栏。

12 个答案:

答案 0 :(得分:10)

上午和下午代表“ante meridiem”和“post meridiem”。

因此,该列的一种可能性是:meridiem CHAR(2)

答案 1 :(得分:9)

format string中指定't'或'tt'时,查看MS调用它,他们只是说AM / PM指示符。

但这并不适合我,因为列的类型(如果你必须这样做)当然应该是bit。考虑到这一点,您需要一个列名称,其值由每个记录的值的真/假性清楚地表示。更像是IsPM,IsAM,IsAfterNoon或IsPostMeridiem。

答案 2 :(得分:4)

好的,所以“meridiem”是它的官方技术术语,但请记住另一个程序员出现并看到一个名为this的位字段,可能不知道它是什么。

AMPM更具描述性,我认为这是一个更好的名字

答案 3 :(得分:4)

我称之为meridiemoffset并将0或12存储在其中。根据需要可以轻松转换为AM或PM,但主要功能是您可以通过添加来轻松计算实际小时数,即使在SQL语句中也是如此(这使得排序更容易,更明显)。

- 亚当

答案 4 :(得分:2)

我称之为一个糟糕的主意。哦,没有辩论的优点?我称之为“XM”或“meridiem”,但这两者都可能令人困惑。怎么样“amORpm”?

答案 5 :(得分:1)

HourPeriod - &gt;时钟(am)或第二次(pm)的第一次迭代

早晨 - &gt;只是将它存储为一点

Zombie - &gt;因为这就是你没有咖啡的AM(也就是说,如果你以这种方式存储日期时间,你可能没有严格的命名约定)

或者,您可以在代码端进行转换并存储24小时时间。 13:58总是'pm',1:58总是'am'。

答案 6 :(得分:1)

如果您无法使用24小时时钟存储时间并且您必须存储AM / PM值,我可能会有一个名为PM_Timestamp的列,其中0 = AM和1 = PM ......但我不会喜欢它。

答案 7 :(得分:1)

我认为AMPM是最佳选择。它的意义很明显。

答案 8 :(得分:1)

怎么样:

 AM_OR_PM

答案 9 :(得分:0)

授予“meridiem”是给出缩写的最准确的术语。但是,它在拉丁语中意为“中午”,因此可能令人困惑。

如果您正在为纯粹的可读性拍摄(并坚决反对日期时间),我建议 IsMorning IsAfternoon

答案 10 :(得分:0)

如果您使用的是SQLServer,可以用方括号括起非标准文本,并将其命名为“?M ”...所以您可以像 mytable一样使用它。[?M ] ; - )

PS-我知道这可以做,因为我的前任做到了。

答案 11 :(得分:0)

创建一个名为&#34; day_period&#34;的表。有两列 - id&amp; day_period。 然后插入两个值am&amp;下午。

现在,您可以在列表中将列命名为&#34; day_period_id&#34;。可能的值为1和2.