10

整数の下 2 桁を取得する必要があります。テーブルに配置された各要素は、完全な年として表示されます。YYYYすべてのフィールドが表示されるように、最後の2桁のみが必要です

YEAR
----
09
00
89

初期フィールドの場所

YEAR
----
2009
2000
1989

編集:私は苦情を受け取ります、

HINT: No function matches the given name and argument types. You might need to add explicit type casts.

私が試したとき

select right(cast(year as char),2) from subjects;

4

4 に答える 4

14

Postgres は、C から法演算子を借用 (または継承) しています。

SET search_path='tmp';

CREATE TABLE lutser ( year integer);

INSERT INTO lutser (year)
        SELECT generate_series(1991,2012)
    ;

SELECT year
    , year / 100 as c2
    , year % 100 AS y2
    FROM lutser
    ;

結果:

CREATE TABLE
INSERT 0 22
 year | c2 | y2 
------+----+----
 1991 | 19 | 91
 1992 | 19 | 92
 1993 | 19 | 93
 1994 | 19 | 94
 1995 | 19 | 95
 1996 | 19 | 96
 1997 | 19 | 97
 1998 | 19 | 98
 1999 | 19 | 99
 2000 | 20 |  0
 2001 | 20 |  1
 2002 | 20 |  2
 2003 | 20 |  3
 2004 | 20 |  4
 2005 | 20 |  5
 2006 | 20 |  6
 2007 | 20 |  7
 2008 | 20 |  8
 2009 | 20 |  9
 2010 | 20 | 10
 2011 | 20 | 11
 2012 | 20 | 12
(22 rows)
于 2012-04-18T09:13:53.533 に答える
3
select substring(CAST(2012 as CHAR(4)), 3, 2)
于 2012-04-18T08:45:52.637 に答える
1

PostgresにLEN関数があるかどうかはわかりませんが、ある場合は、これを試してください。

select SUBSTRING(year,len(year)-1,len(year))
于 2012-04-18T08:46:46.277 に答える
1

以下の SQL クエリを使用することもできます。

select to_char as year from to_char(current_timestamp, 'YY')

ここでは、current_timestamp の年の下 2 桁を使用します

于 2015-01-02T07:13:03.717 に答える