Paradosso: eseguire una query su una colonna Data + una colonna Ora come DateTime
-
20-08-2019 - |
Domanda
Prima di tutto, sono un principiante di Paradox.
In secondo luogo, sto interrogando un database di un pacchetto software di terze parti e non posso cambiare lo schema.
Ho due campi semplicemente chiamati " Data " e " Tempo " che vorrei interrogare come un DateTime (dalla mia esperienza con MS SQL).
È possibile?
Ho provato diverse query e, quando il comando è valido, ottengo " Mancata corrispondenza del tipo di dati nell'espressione dei criteri. "
Inoltre, questo verrebbe da un database Paradox tra il 1999 e il 2000 circa, se questo fa la differenza.
EDIT: anche una semplice concatenazione di stringhe dei campi sarebbe di grande aiuto perché potrei gestirlo nel codice.
EDIT: in risposta alla risposta di a.i.breveleri. Ricevo questo messaggio:
ERRORE [42000] [Microsoft] [Paradosso ODBC Driver] Errore di sintassi (mancante operatore) nell'espressione della query 'CAST (m.Data completata come TIMESTAMP) - CAST ([1/1/3000] AS TIMESTAMP) + CAST (m.Time Completato come TIMESTAMP) '.
Quando eseguo questa query:
select distinct
CAST(m.DateComplete AS TIMESTAMP) -
CAST("1/1/3000" AS TIMESTAMP) +
CAST(m.TimeComplete AS TIMESTAMP)
from Mean m
Soluzione
SELECT CAST(f.DateColumn AS VARCHAR(20)) + ' ' + CAST(f.TimeColumn AS VARCHAR(20))
FROM Foo f
Questo ti dà la stringa concatenata.
SELECT CAST(CAST(f.DateColumn AS VARCHAR(20)) + ' ' + CAST(f.TimeColumn AS VARCHAR(20)) AS TIMESTAMP) As FooTime
FROM Foo f
ti dà il tempo combinato.
Altri suggerimenti
Query QBE:
Query
ANSWER: :PRIV:ANSWER.DB
test.db | Date | Time |
| _x | _y, calc _x+_y as "DateTime" |
EndQuery
Query SQL:
SELECT DISTINCT
CAST(D0."Date" AS TIMESTAMP) -
CAST("1/1/3000" AS TIMESTAMP) +
CAST(D0."Time" AS TIMESTAMP)
FROM
"test.db" D0
-Al.