powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
13 сообщений из 13, страница 1 из 1
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34760389
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, где-нибудь встречается возможность указать для поля формат вывода?

Например по умолчанию select из поля с time выдает с точностью до миллисекунд, например 16:08:59.718

Для получения более банального значения приходится делать substr(time, 0, 6).
Можно ли где нибудь просто указать формат вывода времени, что то типа

create table withtime
{
timefld time without timezone pattern 'hh:mm' default now()
};

Или это тоже "Никому не нужно"?
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34760454
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никому не нужно... Вывод форматируется функцией to_char
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34760466
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select now()::varchar( 50 )
union
select to_char(now(),'DD.MM.YYYY hh24.mi.ss')

 now                           
 ----------------------------- 
  2007 - 08 - 29   13 : 42 : 45 . 393123 + 07  
  29 . 08 . 2007   13 . 42 . 45            
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763483
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От перемены названия функции мало что меняется, а именно -
1. По прежнему нужно уродовать SQL-запрос функцией форматирования.
2. Обработанная to_char-ом последовательность сортируется как строковое поле, поэтому для вывода с сортировкой по полю типа дата приходится писать что то типа

SELECT to_char(date ,'DD.MM.YYYY') as date, date as date_sort FROM sometable ORDER BY date_sort

Хотя можно было бы написать
SELECT date FROM sometable ORDER BY date

ИМХО, второе удобнее. Особенно если в таблице штук 6 этих полей типа дата или время.
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763618
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShadyAngelОт перемены названия функции мало что меняется, а именно -
1. По прежнему нужно уродовать SQL-запрос функцией форматирования.
2. Обработанная to_char-ом последовательность сортируется как строковое поле, поэтому для вывода с сортировкой по полю типа дата приходится писать что то типа

SELECT to_char(date ,'DD.MM.YYYY') as date, date as date_sort FROM sometable ORDER BY date_sort

Хотя можно было бы написать
SELECT date FROM sometable ORDER BY date

ИМХО, второе удобнее. Особенно если в таблице штук 6 этих полей типа дата или время.гм. чем вы смотрите результат запроса? прямо глазом из потока бит вырезаете даты и т.п. и "визуализируете" их усилием воли - як крутыйя перцы-хацкеры в "матрице"? и что мешает визуализировать в произвольном формате? отсутсвие воображения?
Ежли нет - то форматирование поля есть функция некоего клиента-просмотрщика, а не сервера. Клиенты обычно (когда не танцуются от печки) компонуются из довольно таки гибких (по части способности отображать нечто с фантазией) компонент. Если не пользуете никаких компонент - напишите свои.
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763664
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShadyAngel1. По прежнему нужно уродовать SQL-запрос функцией форматирования.А как иначе? В БД хранится дата, именно дата, а не строка. Как ее посмотреть? Для этого нужно ее как-то отобразить. Отображения могут быть различными. Например строка формата 'YYYY-MM-DD'. Или изображение GIF на котором нарисован соответствующий месяц календаря и красным кружком обведен день. :-O

ShadyAngel2. Обработанная to_char-ом последовательность сортируется как строковое поле, поэтому для вывода с сортировкой по полю типа дата приходится писать что то типа

SELECT to_char(date ,'DD.MM.YYYY') as date, date as date_sort FROM sometable ORDER BY date_sort

Хотя можно было бы написать
SELECT date FROM sometable ORDER BY date

ИМХО, второе удобнее. Особенно если в таблице штук 6 этих полей типа дата или время.SELECT to_char(date ,'DD.MM.YYYY') as date_char FROM sometable ORDER BY date
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763747
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные получаю в виде одномерного массива построчно или двумерным всё сразу.

Я и пишу. Класс на PHP, который по указанию имени таблицы создает SQL-запрос, генерирует таблицу, форму для просмотра и форму для изменения информации.

И вот тут то оказывается что чем больше информации указано в CREATE TABLE (у меня автоматически определяются и используются внешние и первичные ключи, описания полей), тем меньше приходится возиться с компонентом. У меня он сейчас настраивается в 2 тычка меньше чем за 1 минуту, после чего позвляет просматривать таблицу, удалять, добавлять и изменять записи, делать сортировку и поиск. Таким образом если изначально при проектировании таблицы указать формат вывода даты и времени для всех (или хотя бы некоторых) полей, то можно избавиться от указания функции to_char в каждом запросе.

>и что мешает визуализировать в произвольном формате? отсутсвие воображения?
В смысле на каждое поле с временем натравливать substr($res['begin_time'], 0, 6)?
Ничего не мешает, "но есть способ лучше" (с)какая то реклама

P.S. Я не говорю что я чего то не могу, я планомерно и успешно пилю свою гирю, но мне кажется что смысл жизни сервера БД в том чтобы отдать пользователю данные в удобном ему виде. А то так можно на запрос и comma-separated файл отдавать, с datetime во внутреннем юниховском формате. И сортируй его самостоятельно, и визуализируй его в произвольном формате сколько хочешь.
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763788
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леха, а SELECT DISTINCT to_char(date ,'DD.MM.YYYY') as date_char FROM sometable ORDER BY date
?
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763841
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShadyAngel >и что мешает визуализировать в произвольном формате? отсутсвие воображения?
В смысле на каждое поле с временем натравливать substr($res['begin_time'], 0, 6)?
Ничего не мешает,... гм. напишите компанент (класс) поля. из него (в кол-ве эн штук) набирайте компанент грида. ничего не натравливайте. а "настраивайте". Внутренняя реализация "настройки" - не должна интересовать настройщика. у меня всё.

ЗЫ Ваши сложности реализации чего-то в выбранном вами наречии ("Я и пишу. Класс на PHP") должны интересовать только вас. Разве нет?
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763880
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>В БД хранится дата, именно дата, а не строка.
А я где то говорил иное? Просто неплохо было бы добавить какой нибудь параметр, устанавливающий значение формата вывода для поля. Лично мне это удобно потому что у меня дата нужна где как 'DD.MM.YY', а где как 'DD.MM.YYYY', а время как 'HH.MM', так и 'HH.MM.SS'. А время в формате 'HH.MM.SS.хрень' мне вообще еще ни разу не пригодилось. И в этом случае вместо того чтобы каждый раз прикручивать to_char было бы логичней саму базу попросить форматировать время и дату при выводе.

> Отображения могут быть различными. Например строка формата 'YYYY-MM-DD'.
Мне кажется большая часть русских программистов хотели бы получить ее в виде строки формата 'DD.MM.YYYY' :) Ну или 'DD.MM.YY'.
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763934
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторМне кажется большая часть русских программистов хотели бы получить ее в виде строки формата 'DD.MM.YYYY' :) Ну или 'DD.MM.YY'.

postgresql.conf
Код: plaintext
datestyle = 'German, dmy'
правда, это не отбросит доли секунд
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34763944
ShadyAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assaнапишите компанент (класс) поля. из него (в кол-ве эн штук) набирайте компанент грида. ничего не натравливайте. а "настраивайте". Внутренняя реализация "настройки" - не должна интересовать настройщика. у меня всё.
Не поверите, на 100% согласен.

Процесс настройки у меня, в основном заключается между строками
"CREATE TABLE tablename (" и ");".

Программист PHP, по замыслу, должен только указать имя грамотно созданной таблицы и тут же получить возможность ее отображать.

Ладно, собственно вопрос закрыт. Топик открывался с мыслью что может быть есть способ облегчить себе жизнь а я его не знаю. Ну нет его так нет. :)
...
Рейтинг: 0 / 0
Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
    #34764101
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShadyAngelЯ и пишу. Класс на PHP, который по указанию имени таблицы создает SQL-запрос, генерирует таблицу, форму для просмотра и форму для изменения информации.

Я не говорю что я чего то не могу, я планомерно и успешно пилю свою гирю, но мне кажется что смысл жизни сервера БД в том чтобы отдать пользователю данные в удобном ему виде.Устанавливайте гарантированно в вашем классе (приложении) определенный формат вывода даты с помощью переменной datestyle, см. доку . И везде в классе (приложении) считайте формат известным и фиксированным.

ShadyAngelSELECT DISTINCT to_char(date ,'DD.MM.YYYY') as date_char FROM sometable ORDER BY date
?SELECT to_char(date ,'DD.MM.YYYY') as date_char FROM ( SELECT DISTINCT date FROM sometable ORDER BY date ) as A

Только в том случае если гарантированно to_char(date ,'DD.MM.YYYY') взаимно однозначно соответствует date. Например для to_char(date ,'MM.YYYY') не прокатит.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли указать форматирование вывода даты/времени при созданиитаблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]