【问题标题】:Setting Default TIMESTAMP in SQL Column在 SQL 列中设置默认 TIMESTAMP
【发布时间】:2019-01-27 06:58:15
【问题描述】:

我正在创建一个表,我有一个列是TIMESTAMP

我想给它设置一个默认值。我该怎么做?

例如:

我有一个USER_LAST_SEEN 表,我有两列:

1) username 2)logout date

并且我希望能够通过设置一个默认时间戳来判断用户是否从未注销过,然后我可以查找。我该怎么做?

CREATE TABLE LAST_SEEN_TABLE (USERNAME STRING, LOGOUT_DATE TIMESTAMP [What am I missing here?])

编辑:保存 NULL 不是一个好的解决方案,因为在我创建表时用户已经存在的情况。在这种情况下,显示“从不登录”(当用户确实拥有 NULL 时显示)是错误的。我需要一种方法来显示用户之前登录的另一个指示,以便显示“N/A”

【问题讨论】:

  • 如果用户从不注销,为什么不将logout 日期保留为 NULL?
  • 您使用的是哪个DBMS product? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag postgresql, oracle, sql-server, db2, ...
  • 你用的是sql server还是什么?
  • 只需将默认约束作为 current_timestamp 添加到您的列中。
  • @rcs 在这种情况下,“NULL”实际上用于其他用途。这就是我不使用它的原因,我正在寻找另一种解决方案

标签: sql timestamp default-value


【解决方案1】:

如果你不能使用NULL,你可以使用一个特定的日期,例如'1900-01-01'

CREATE TABLE LAST_SEEN_TABLE 
(
    USERNAME varchar(100), 
    LOGOUT_DATE TIMESTAMP default '1900-01-01 00:00:00'
);

【讨论】:

  • 谢谢,这就是我想知道的!
猜你喜欢
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 2013-02-16
  • 2019-01-21
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
相关资源
最近更新 更多