-
Здравствуйте!
Работаю c FB2.5
Как узнать является ли значение поля датой или нет.
например. В поле Text Varchar(100) храниться текст
01.01.2001
00.00.2002
31.02.2003
Нужно в поле этой же таблицы (например Date_in DATE)
вставить значение поля TEXT, ели значение является датой.
Нужно сделать не в Delphi, а в самом SQL-запросе.
-
Это какая же нормальная форма будет ?
> в самом SQL-запросе.
Для FB проще UDF сделать, мне кажется.
-
как решение не претендую, но разьве FB не поддерживает (знаю в теории) - хранимые процедуры? Если да, то там пишем такую - перевод значения из таблицы в дату, обернутую в исключение с реакцией на ошибку.
или (теория) в Д, при переборе\добавлении\др
function mytestdt(const s:string):integer;
var d:tdatetime;
begin
result:=0;
try
d:=strtodatetime(s); //d:=strtodate(s);//d:=strtotime(s);//как вариант
result:=1;
except
result:=-1;
end;
end;
-
> Для FB проще UDF сделать, мне кажется.
Как вариант.
> lima200 (01.04.17 03:06) [2]
> как решение не претендую, но разьве FB не поддерживает (знаю
> в теории) - хранимые процедуры?
Поддерживает. Только как обработать исключительную ситуацию в ней не могу найти. Там нет такого как в delphi: try ... except
> function mytestdt(const s:string):integer;
> var d:tdatetime;
> begin
> result:=0;
> try
> d:=strtodatetime(s); //d:=strtodate(s);//d:=strtotime(s);
> //как вариант
> result:=1;
> except
> result:=-1;
> end;
> end;
>
>
Без комментариев
-
-
-
> Нужно в поле этой же таблицы (например Date_in DATE)
> вставить значение поля TEXT, ели значение является датой.
>
А если в поле TEXT хранится "25 сентября 2015 года"?
-
> Нужно в поле этой же таблицы (например Date_in DATE)
> вставить значение поля TEXT, ели значение является датой.
А если в TEXT хранится только в виде "ХХ.ХХ.ХХХХ", оно и не вставится в случае "не дата", если Date_in типа DATE
-
>
> А если в поле TEXT хранится "25 сентября 2015 года"?
ну, если известен шаблон формата, по которому эта строка получена, обратить непроблема
-
Если известен шаблон, как в TEXT попадет "не дата"? А перебирать все возможные шаблоны - проще юзера убить.
-
> А перебирать все возможные шаблоны - проще юзера убить.
ну, если это в пределах одной программы - то убить надо программера.
Но возможна такая ситуация: в пределах программы всё хорошо, всё логично, дата не текст и любые форматы хранятся-обрабатываются и т. д. А потом сказали: а вот у нас есть тут файлики екселевские, нам их филиалы шлють, а нам бы их импортировать бы... а тама и сюнтябрь, и березень, и год впереди - какой филиал как хотел.
-
> Как узнать является ли значение поля датой или нет.
> например. В поле Text Varchar(100) храниться текст
тип значения: string[100]
-
Иногда точная дата бывает неизвестна и в текстовом поле может быть записано что-то типа 00.00.2016 (то есть, известен только год). Конечно, такие даты обрабатываются особым образом, по административно утвержденным правилам.
-
"собрание состоится в среду,
но всем приходить на день раньше."
- Петька, почему в среду и почему на день раньше?
- Василий Иваныч, я смотрел в словаре как пишется "фторник", но на эту букву там только "фуфайка"
-
> rrrrr © (07.04.17 12:04) [13]
Увы, ситуация не выдумана, а взята из реальной практики.
В пруду нашли утопленника. Эксперты говорят, что плавал он там от месяца до двух.
Какую дату смерти должен ставить ЗАГС в свидетельстве о смерти?