Проблема с датой

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Проблема с датой

Сообщение masters » 08.10.2009 16:28:27

Есть программа, работает с БД MySQL. При добавлении строки в базу дописывается и дата добавления (в базе хранится как текст).

DateToStr(now)
Вобщем при работы с винды все нормально, дата добавляется в виде: 08.10.2009
А при работе с Линукса (Ubuntu 9.04) дата добавляется в виде: 8-10-09

Планируется работа с базой пользователей обоих ОС, поэтому возможны затруднения. Конечно можно парсить дату при добавлении и приводить к единому виду, но может есть способ проще ???

В Убунте не нашел, как задавать вид даты в системе :(
masters
новенький
 
Сообщения: 20
Зарегистрирован: 19.08.2009 13:50:59

Re: Проблема с датой

Сообщение Mr.Smart » 08.10.2009 16:55:53

Код: Выделить всё
var
  d: String;
begin
  DateTimeToString(d,'dd.mm.yyyy',Now)


Добавлено спустя 21 минуту 6 секунд:
Или можно проще. в коде задайте значение переменной
Код: Выделить всё
ShortDateFormat:='dd.mm.yyyy'
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Проблема с датой

Сообщение Light13 » 09.10.2009 09:12:33

masters писал(а):в базе хранится как текст

имхо не верный подход - лучше завести поле типа Дата и меньше будет проблем
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Проблема с датой

Сообщение masters » 09.10.2009 10:34:22

Light13 писал(а):
masters писал(а):в базе хранится как текст

имхо не верный подход - лучше завести поле типа Дата и меньше будет проблем


В программе не используются компоненты длы работы с БД, поэтому с базы все считывается как string.
masters
новенький
 
Сообщения: 20
Зарегистрирован: 19.08.2009 13:50:59

Re: Проблема с датой

Сообщение Attid » 09.10.2009 11:04:02

masters писал(а):поэтому с базы все считывается как string.

не важно. зато не будешь наступать на грабли и меньше проблем с выборками по условиям. а по датам скорость выборки.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Re: Проблема с датой

Сообщение GAMER » 17.10.2009 17:18:22

А почему бы не генерировать дату средствами MySQL? Функция now().
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Решено: Проблема с датой

Сообщение Petrakoff Sergey » 11.03.2012 13:34:17

Сделал как советует Mr.Smart:
Mr.Smart писал(а):Или можно проще. в коде задайте значение переменной
Код: Выделить всё
ShortDateFormat:='dd.mm.yyyy'

Даты отображаются нормально, но теперь не могу ввести дату. Делаю так:
Код: Выделить всё
var
  tempdate: TDateTime;
begin
......
try
    tempdate:= StrToDate(DBEdit1.Text);
  except
      DBEdit1.Text:= CurrentDate;
      ShowMessage('Неверный формат даты');
      exit;
  end;     

DBEdit1 связан с полем типа Date.
Как бы я не вводил дату, выдается ошибка.
Код: Выделить всё
'11.03.2012' is not a valid date format

Пробовал и так 'dd/mm/yyyy' , ничего не получается.
Как теперь вводить дату?
PS. Забыл сообщить. В Windows без проблем. Проблема в Linux (Mandriva 2009).

Нашел решение! Надо добавить:
Код: Выделить всё
ShortDateFormat:='dd.mm.yyyy';
DateSeparator:= '.';
Petrakoff Sergey
новенький
 
Сообщения: 33
Зарегистрирован: 08.12.2011 11:42:17


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 263

Рейтинг@Mail.ru
cron