Sql 如何在firebird中获得YYYYMMDD中的今天日期

Sql 如何在firebird中获得YYYYMMDD中的今天日期,sql,firebird,firebird2.5,Sql,Firebird,Firebird2.5,如何在firebird的YYYYMMDD中获得今天的日期,我看了一下,但不知道如何编写此内容。我认为您可以: select replace(cast(cast('Now' as date) as varchar(10)), '-', '') from rdb$database 我认为你可以做到: select replace(cast(cast('Now' as date) as varchar(10)), '-', '') from rdb$database 这应该行得通 CREATE

如何在firebird的YYYYMMDD中获得今天的日期,我看了一下,但不知道如何编写此内容。

我认为您可以:

select replace(cast(cast('Now' as date) as varchar(10)), '-', '')
from rdb$database 
我认为你可以做到:

select replace(cast(cast('Now' as date) as varchar(10)), '-', '')
from rdb$database 
这应该行得通

CREATE TABLE tab( t time, d date, ts timestamp );
INSERT INTO tab(t,d,ts) VALUES ('14:59:23', '2007-12-31', '2007-12-31 14:59');

SELECT CAST(CAST(d as varchar(10)))
FROM tab;
这应该行得通

CREATE TABLE tab( t time, d date, ts timestamp );
INSERT INTO tab(t,d,ts) VALUES ('14:59:23', '2007-12-31', '2007-12-31 14:59');

SELECT CAST(CAST(d as varchar(10)))
FROM tab;
这是一个完整版本(整数)

这是一个完整的版本(在VARCHAR中)

这是一个完整版本(整数)

这是一个完整的版本(在VARCHAR中)


在FIREBIRD v2.5.5中:

SELECT    LPAD( EXTRACT( YEAR FROM CURRENT_TIMESTAMP ), 4, '0' ) ||
          LPAD( EXTRACT( MONTH FROM CURRENT_TIMESTAMP ), 2, '0' ) ||
          LPAD( EXTRACT( DAY FROM CURRENT_TIMESTAMP ), 2, '0' ) || ' ' ||
          LPAD( EXTRACT( HOUR FROM CURRENT_TIMESTAMP ), 2, '0' ) ||
          LPAD( EXTRACT( MINUTE FROM CURRENT_TIMESTAMP ), 2, '0' ) || 
          LPAD( TRUNC( EXTRACT( SECOND FROM CURRENT_TIMESTAMP ) ), 2, '0' )
FROM      rdb$database

输出为:FIREBIRD v2.5.5中的YYYYMMDD HHMMSS

SELECT    LPAD( EXTRACT( YEAR FROM CURRENT_TIMESTAMP ), 4, '0' ) ||
          LPAD( EXTRACT( MONTH FROM CURRENT_TIMESTAMP ), 2, '0' ) ||
          LPAD( EXTRACT( DAY FROM CURRENT_TIMESTAMP ), 2, '0' ) || ' ' ||
          LPAD( EXTRACT( HOUR FROM CURRENT_TIMESTAMP ), 2, '0' ) ||
          LPAD( EXTRACT( MINUTE FROM CURRENT_TIMESTAMP ), 2, '0' ) || 
          LPAD( TRUNC( EXTRACT( SECOND FROM CURRENT_TIMESTAMP ) ), 2, '0' )
FROM      rdb$database
输出为:YYYYMMDD HHMMSS

如果日期太长,则会引发“字符串截断”错误,因为转换为yyy00.0+mm00.0+d.0(浮点值)。它应该是:从RDB$Database中选择EXTRACT(从CAST开始的年份(“现在”为日期))| EXTRACT(从CAST开始的月份(“现在”为日期))| EXTRACT(从CAST开始的日期(“现在”为日期))如果日期太长,则会抛出“字符串截断”错误,因为转换将是yyyy00.0+mm00.0+d.0(浮点值)。它应该是:从RDB$数据库中选择摘录(从CAST开始的年份(“现在”为日期))|摘录(从CAST开始的月份(“现在”为日期))|摘录(从CAST开始的日期(“现在”为日期))