Data no Oracle
Olá... sou novato no BD oracle e estou com o seguinte problema:
Utilizo delphi 6 e dbexpress(TsqlConnection + TSqlDataSet DataSetProvider + ClientDataSet);
Entretanto, percebi que parametros do tipo data para o oracle devem ser formatados com o formato ´dd-mmm-yyyy´. Entao, eu formatei com dd-mmm-yyy e ficou assim:
Ex: 14-jan-2004 --> Aqui tudo bem. o oracle executa e reconhece, não dando erro.
EX2: 12-fev-2004 -- > Já aqui, o oracle não aceita, retornando o erro: ´Not a valid Month´. Depois de certos estudos, percebi que o mês de
fevereiro abreviado no ORACLE é ´feb´, e não ´fev´ (Este último é o padrão do delphi com o formato ´dd-mmm-yyy´. E agora. o que devo fazer para que o sql acima seja passado corretamente para o oracle? :oops:
Utilizo delphi 6 e dbexpress(TsqlConnection + TSqlDataSet DataSetProvider + ClientDataSet);
TSqlDataset.close; TsqlDatase.commandtext := ´´; TsqlDataSet.commandtext := ´SELECT * FROM TABELA WHERE DATA > :parData´; TSqlDataSet.Parambyname(´parData´).AsString := quotdsrt(DateToStr(date));
Entretanto, percebi que parametros do tipo data para o oracle devem ser formatados com o formato ´dd-mmm-yyyy´. Entao, eu formatei com dd-mmm-yyy e ficou assim:
Ex: 14-jan-2004 --> Aqui tudo bem. o oracle executa e reconhece, não dando erro.
EX2: 12-fev-2004 -- > Já aqui, o oracle não aceita, retornando o erro: ´Not a valid Month´. Depois de certos estudos, percebi que o mês de
fevereiro abreviado no ORACLE é ´feb´, e não ´fev´ (Este último é o padrão do delphi com o formato ´dd-mmm-yyy´. E agora. o que devo fazer para que o sql acima seja passado corretamente para o oracle? :oops:
Rômulo Barros
Curtidas 0
Respostas
Aroldo Zanela
10/02/2004
Colega,
Verifique o método AsSQLTimeStamp ao invés de AsString.
Verifique o método AsSQLTimeStamp ao invés de AsString.
GOSTEI 0
Rômulo Barros
10/02/2004
VALEU.......................... Deu certo :lol:
GOSTEI 0
Wagnerpb
10/02/2004
Fiz de forma semelhante ao nosso amigo... mudei o paramentro para AsSQLTimeStamp...
Mas quando tento atribui Now ou Date, ocorre um erro...
Alguma sugestão?
Mas quando tento atribui Now ou Date, ocorre um erro...
Alguma sugestão?
GOSTEI 0
Wtjunior
10/02/2004
Olá
Use ALTER SESSION SET NLS_DATE_FORMAT = ´DD/MM/YYYY´ para alterar o tipo de data.
==> mas lembre-se que qdo desligar a máquina volta como alteriormente.
Wilson
Use ALTER SESSION SET NLS_DATE_FORMAT = ´DD/MM/YYYY´ para alterar o tipo de data.
==> mas lembre-se que qdo desligar a máquina volta como alteriormente.
Wilson
GOSTEI 0