Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从DBeaver(SQL)中的Timestamp列中添加和减去1小时_Sql_Timestamp_Vertica_Dbeaver - Fatal编程技术网

从DBeaver(SQL)中的Timestamp列中添加和减去1小时

从DBeaver(SQL)中的Timestamp列中添加和减去1小时,sql,timestamp,vertica,dbeaver,Sql,Timestamp,Vertica,Dbeaver,我有一个列为“Timestamp”的表。我想创建两列,其中包含该时间戳的-1小时和+1小时 这是时间戳的格式:2020-08-31 11:05:55 我想再得到两列,分别显示-1小时和+1小时:2020-08-31 10:05:55和2020-08-31 12:05:55 谢谢 如果您的DBMS是Microsoft SQL Server,DATEADD()]可能是您的最佳选择。如果您使用的是类似于Oracle的东西,那么由一个没有名字的马所提供的ANSI interval解决方案是一个非常好的、

我有一个列为“Timestamp”的表。我想创建两列,其中包含该时间戳的-1小时和+1小时

这是时间戳的格式:2020-08-31 11:05:55 我想再得到两列,分别显示-1小时和+1小时:2020-08-31 10:05:55和2020-08-31 12:05:55

谢谢

如果您的DBMS是Microsoft SQL Server,DATEADD()]可能是您的最佳选择。如果您使用的是类似于Oracle的东西,那么由一个没有名字的马所提供的ANSI interval解决方案是一个非常好的、易于阅读的选项

例如,下面的代码生成

SELECT '2020-08-31 11:05:55' AS time_stamp, 
   DATEADD(hour, 1, '2020-08-31 11:05:55') plus_one_hour, 
   DATEADD(hour, -1, '2020-08-31 11:05:55') minus_one_hour;
--输出

如果您的DBMS是Microsoft SQL Server,则DATEADD()]可能是您的最佳选择。如果您使用的是类似于Oracle的东西,那么由一个没有名字的马所提供的ANSI interval解决方案是一个非常好的、易于阅读的选项

例如,下面的代码生成

SELECT '2020-08-31 11:05:55' AS time_stamp, 
   DATEADD(hour, 1, '2020-08-31 11:05:55') plus_one_hour, 
   DATEADD(hour, -1, '2020-08-31 11:05:55') minus_one_hour;
--输出


在标准ANSI SQL中,您可以简单地减去一个间隔:

select the_column - interval '1' hour as one_hour_before,
       the_column, 
       the_column + interval '1' hour as one_hour_after
from the_table
where ....

在标准ANSI SQL中,您可以简单地减去一个间隔:

select the_column - interval '1' hour as one_hour_before,
       the_column, 
       the_column + interval '1' hour as one_hour_after
from the_table
where ....

没有名字的马是对的。标准方法是加/减间隔

然而,Vertica日期算法提供了一些非常简单的快捷方式

当您加/减一个整数值时,它被解释为天数:

    SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1, CURRENT_TIMESTAMP-1;
           ?column?            |           ?column?            |           ?column?            
-------------------------------+-------------------------------+-------------------------------
 2020-09-03 00:38:54.781675-04 | 2020-09-04 00:38:54.781675-04 | 2020-09-02 00:38:54.781675-04
如果要加/减:

  • 小时您必须使用1/24
  • 分钟您必须使用1/1440
  • 您必须使用1/86400
例如:

SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/24, CURRENT_TIMESTAMP-1/24;
           ?column?            |           ?column?            |           ?column?            
-------------------------------+-------------------------------+-------------------------------
 2020-09-03 00:38:54.781675-04 | 2020-09-03 01:38:54.781675-04 | 2020-09-02 23:38:54.781675-04

SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/1440, CURRENT_TIMESTAMP-1/1440;
           ?column?            |           ?column?            |           ?column?            
-------------------------------+-------------------------------+-------------------------------
 2020-09-03 00:38:54.781675-04 | 2020-09-03 00:39:54.781675-04 | 2020-09-03 00:37:54.781675-04

没有名字的马是对的。标准方法是加/减间隔

然而,Vertica日期算法提供了一些非常简单的快捷方式

当您加/减一个整数值时,它被解释为天数:

    SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1, CURRENT_TIMESTAMP-1;
           ?column?            |           ?column?            |           ?column?            
-------------------------------+-------------------------------+-------------------------------
 2020-09-03 00:38:54.781675-04 | 2020-09-04 00:38:54.781675-04 | 2020-09-02 00:38:54.781675-04
如果要加/减:

  • 小时您必须使用1/24
  • 分钟您必须使用1/1440
  • 您必须使用1/86400
例如:

SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/24, CURRENT_TIMESTAMP-1/24;
           ?column?            |           ?column?            |           ?column?            
-------------------------------+-------------------------------+-------------------------------
 2020-09-03 00:38:54.781675-04 | 2020-09-03 01:38:54.781675-04 | 2020-09-02 23:38:54.781675-04

SELECT CURRENT_TIMESTAMP, CURRENT_TIMESTAMP+1/1440, CURRENT_TIMESTAMP-1/1440;
           ?column?            |           ?column?            |           ?column?            
-------------------------------+-------------------------------+-------------------------------
 2020-09-03 00:38:54.781675-04 | 2020-09-03 00:39:54.781675-04 | 2020-09-03 00:37:54.781675-04

@一匹没有名字的马对不起,我不太熟悉这些术语,但我正在连接Vertica。那是DBMS吗?@a_horse_,没有名字嗨,对不起,我不太熟悉这些术语,但我正在连接Vertica。那是数据库管理系统吗?