Официальный сайт студ.городка НГТУ
Программирование и БД » [Postgres]Вопрос по тип "дата" 

#1  23.05.10 19:41

[Postgres]Вопрос по тип "дата"

Есть таблица, одна из колонок типа дата формата "год-месяц-день". Нужно получить просто цифру года, т.е. из "год-месяц-день" взять только год. Нашел такое решение  EXTRACT(YEAR FROM "год-месяц-день"). Но думаю что   есть стандартная функция для этого типа.

Offline

#2  23.05.10 19:55

Re: [Postgres]Вопрос по тип "дата"

встроенной нет, но можно написать свою

Offline

#3  24.05.10 11:53

Maq
Профиль

Re: [Postgres]Вопрос по тип "дата"

на хостеле это было сделано функцией year_sql:
Аргументы: character varying
Определение: SELECT substring($1 from '#"%#"-%-%' for '#')::integer;

сто лет назад делал, уже не помню что и почем :)

Offline

#4  24.05.10 19:15

Re: [Postgres]Вопрос по тип "дата"

Jolly Roger, Ты описал вполне нормальное решение. Можно пострадать хернёй и сделать через строковые функции (регулярные выражения тут ИМХО смотрятся как-то по-спартански):

Код::

SELECT SUBSTRING(NOW()::text FROM 1 FOR 4 ) AS year;
 year
------
 2010
(1 запись)

Offline

#5  25.05.10 10:08

Maq
Профиль

Re: [Postgres]Вопрос по тип "дата"

нормально смотрятся если его дата храниться не как тип даты, а как строка
хотя да, вместо регулярки можно простое вырезание по длине

Offline

#6  27.05.10 02:12

Re: [Postgres]Вопрос по тип "дата"

я в ms sql делаю так...может для постгриса тоже прокатит, а может и нет

select datepart (yyyy, date)  ну и вместе date, атрибут таблицы или подзапрос...вернет интовое значение

Offline

#7  27.05.10 20:56

Re: [Postgres]Вопрос по тип "дата"

markuz, в разных субд разные функции. в t-sql тогда уж year(...)

Offline

#8  30.05.10 05:19

Re: [Postgres]Вопрос по тип "дата"

Jolly Roger написал(а):

EXTRACT(YEAR FROM "год-месяц-день")

вполне себе стандартное решение, чем не устроило?

Offline

#9  30.05.10 15:13

Re: [Postgres]Вопрос по тип "дата"

XuMiX я так и оставил.

Offline

Программирование и БД » [Postgres]Вопрос по тип "дата" 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.061 сек.
Выполнено 14 запросов.