powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проблема работы с DATETIME...
4 сообщений из 4, страница 1 из 1
Проблема работы с DATETIME...
    #32381533
Antoxa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа!

Требуется помощь по решению проблемы работы с датой и временем. В базе имеется таблица, в таблице есть поле суть DATETIME (TIMESTAMP). По спецификации требуется, чтобы работа с этим полем велась посредством двух контролов – в одном дата, в другом время. Замечу, что проект разрабатывается для работы с тремя СУБД: ASA, MS SQL-Server, Oracle. Одно из возможных (на мой взгляд) решений состоит в следующем... В SQL-запрос помещаются два computed field’а ссылающиеся на ту самую колонку, которую надо редактировать. Эти два поля помещаются на датавинду. Для первого поля задается формат [shotdate], для второго [time] (формат устанавливается как для редактирования, так и для отображения). При изменении даты (первое поле) происходит сброс времени в 00:00:00. При этом полученое занчение даты-времени является вполне валидным. При изменении же времени (второе поле) происходит сброс даты в 00.00.0000. Полученое значение даты-времени является невалидным. Чтобы избежать невалидности на событие ItemError была закодирована подстановка ненулевой даты. НО!!! Оказалось, что не всякое значение времени ведет к сбросу даты в ноль. Например, если ввести значение времени 13:13:13, то получим 00.00.0000 13:13:13. А если ввести, например, 11:11:11 то в результате получим что-то вроде этого – 11.11.2011 00:00:00 (введенное время сбросилось, «перейдя» в дату). И так, теперь собственно вопрос – можно ли бороться с данным «феноменом» (и если можно, то как)? Возможно существует и принципиально иные подходы к решению поставленной выше задачи. Если кто сталкивался, посоветуйте, пожалуйста. Но еще раз отмечу, что приложение разрабатывается для работы с тремя СУБД, и крайне желательно, чтобы сам SQL-запрос был унифицированным для всех трех СУБД.

Ну и на всякий случай приведу версию среды разработки: Sybase PowerBuilder Enterprise Version 9.0.1 Build 7048

Заранее благодарю.
...
Рейтинг: 0 / 0
Проблема работы с DATETIME...
    #32381614
gerss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я работал с полем TIMESTAMP оно является не совсем полем даты и времени, поэтому работать с ним как с датой и временем - затруднительно.

С DateTime с таким никогда не сталкивался.
...
Рейтинг: 0 / 0
Проблема работы с DATETIME...
    #32381654
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще. "Перескакивает" оно у вас в DataWindow или в базе? Если в DataWindow, то это должно делаться каким-то скриптом в котором содержится какая-то ошибка. Сами по себе они никак не связаны, хоть и создавались из одного поля.
...
Рейтинг: 0 / 0
Проблема работы с DATETIME...
    #32381694
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gerss
В Sybase ASA DATETIME - домен, который на самом деле является TIMESTAMP, что вполне равноценно, так как TIMESTAMP хранит так же, как и DATETIME дату и время. Это автор и имел ввиду.

Antoxa
Можно попробовать так:
в запросе возвращать само поле DATETIME и 2 вычисляемых поля, полученных с DATETIME, выщемляя в первое поле дату и приводя к типу DATE (DATETIME для MSSQL), а во второе поле время, но приводя к типу VARCHAR(5). Тогда редактирование времени можно будет легко сделать через EditMask (##:##). Соотвествующе после изменения любого из этих вычисляемых полей можно легко собрать дату и время как DATETIME и занести значение в исходное поле, которое потом и будет писаться PB в таблицу. Для проверки введенного времени можно также написать свою функцию и нацепить ее на проверку колонки времени в DataWindow.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проблема работы с DATETIME...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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