|
Сравнить выражение с текущей датой
|
|||
---|---|---|---|
#18+
Добрый день. Подскажите, пожалуйста ответ на вопрос. Есть некий столбик в таблице, назовём его expiration_date , он имеет данные вида '202401' , '201711', '201909' и т.п. Где первые 4 знака это год, следующие за годом 2 знака это месяц (причём если месяц меньше, чем октябрь, то он записывается с нулём впереди). Т.е. длина эаписей в этой ячейке всегда равна 6 цифр. Стоит задача сравнить с текущей датой (дабы отобрать учётные записи, у которых истёк "срок годности"). Не могу сообразить, как привести значения в столбике expiration_date к типу даты. Точнее, проблему вызывает именно ноль первым знаком у месяцев с января по сентябрь. Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2021, 13:02 |
|
Сравнить выражение с текущей датой
|
|||
---|---|---|---|
#18+
DmitryChrono Есть некий столбик в таблице, назовём его expiration_date , он имеет данные вида '202401' , '201711', '201909' и т.п. DmitryChrono Не могу сообразить, как привести значения в столбике expiration_date к типу даты. а зачем тебе дата ? сравнивай строки По крайней мере индекс (если он конечно есть) по expiration_date сможет "пригодиться" Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2021, 13:13 |
|
Сравнить выражение с текущей датой
|
|||
---|---|---|---|
#18+
DmitryChrono, документацияto_date ( text, text ) → date Converts string to date according to the given format. to_date('05 Dec 2000', 'DD Mon YYYY') → 2000-12-05 https://www.postgresql.org/docs/13/functions-formatting.html Соответственно вам надо YYYYMM в качестве формата. Но как вам выше написали в таком формате можно и строки сравнивать и числа (что скорее всего будет быстрее заметно потому что надо будет не N раз to_date вызывать по разу на строку а 1 раз to_char вне зависимости даже от наличия индекса). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
05.01.2021, 13:29 |
|
|
start [/forum/topic.php?fid=53&fpage=18&tid=1994281]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 289ms |
total: | 403ms |
0 / 0 |