Firebird SQL - daty

0

Mam takie zapytanie do bazy Firebirda:

SELECT ID, DATA1, DATA2
FROM TABTEST

DATA1 jest typu DATE
DATA2 jest typu VARCHAR(8)
Otrzymuję taki przykładowy wynik:

ID DATA1 DATA2
1 05.11.2005 20070523
2 21.03.1999 19991111
...

Na strukturę bazy nie mam wpływu a potrzebuję w wyniku SELECT-a otrzymać taki wynik (ujednolicony zapis dat):

ID DATA1 DATA2
1 2005-11-05 2007-05-23
2 1999-03-21 1999-11-11
...

Chodzi o to, że wynik zapytania wędruje do pliku CSV, a tam daty mają być takim ciągiem RRRR-MM-DD.
Rekordów jest kilkaset tysięcy, więc ręczna edycja pliku CSV nie wchodzi w grę.
Czy można to jakoś przekonwertować w locie w zapytaniu SELECT?

1

Skorzystaj z substring. Przykład:

 select substring(DATA1 from 7 for 4)||'-'||substring(DATA1 from 4 for 2) ... from TABTEST
0
mariano901229 napisał(a):

Skorzystaj z substring. Przykład:

 select substring(DATA1 from 7 for 4)||'-'||substring(DATA1 from 4 for 2) ... from TABTEST

Dzięki za pomoc :)

To działa tylko dla pól typu VARCHAR, czyli w moim przypadku DATA2 (np. '20070523'):

SELECT SUBSTRING(DATA2 FROM 1 FOR 4)||'-'||SUBSTRING(DATA2 FROM 5 FOR 2)||'-'||SUBSTRING(DATA2 FROM 7 FOR 2) AS DATA2 ... FROM TABTEST

Dla pól typu DATE - u mnie DATA1 (np. 23.05.2007) zrobiłem CAST:

SELECT CAST(DATA1 AS VARCHAR(10)) AS DATA1 ... FROM TABTEST

i od razu datę przerzuca do łańcucha w takiej postaci: '2007-05-23'

1 użytkowników online, w tym zalogowanych: 0, gości: 1