2013-04-03 12 views
6

Sistem tarihi dd/mm/yyyy'ye Oracle 10g kullanarak nasıl tabloya eklenir?Oracle'a sistem tarihini ekleme

Aşağıdaki sorguyu kullanırken, sistem tarihini 03/04/0013 olarak ekler. 03/04/2013'e ihtiyacım var. Bu sorunu çözmeme yardım edebilir misin?

insert into GtTable 
values('111','Name',300,'Tour',to_date('02/04/2012','DD/MM/YYYY'),to_date(sysdate,'DD/MM/YYYY')); 

Ama '02/04/2012' takmadan doğrudan, bu/04/2012' '02 aynıdır kabul. Ekinize üzerinde son alan bir tarih türü alanı ise

+0

Çalıştığından emin misiniz? '22/04/2012 'gibi bir şey denediniz mi? 'Nls_date_format' nedir? – hofmeister

cevap

4

, sen SYSDATE üzerinde herhangi bir dönüştürme gerekir, bu nedenle, aşağıdaki Tamam olmalıdır olmamalıdır:

insert into GtTable 
values('111', 'Name', 300, 'Tour', to_date('02/04/2012','DD/MM/YYYY'), sysdate); 

Ama bu bir varchar alan ise, çalışmalıdır: Eğerçalıştırdığınızda,

sysdate zaten tarihtir bir tarihte TO_DATE aktive olmamalıdır

insert into GtTable 
values('111', 'Name', 300, 'Tour', to_date('02/04/2012','DD/MM/YYYY'), to_char(sysdate, 'dd/mm/yyyy')); 
+0

Geçerli tarih eklemek için kullanıyorum ama bana tarih formatı tanınmıyor error to_date (SYSDATE, 'DD-MMM-YYYY') –

+0

@MRAND Aldığın sorunun ** ABCade * ile kaplandığını düşünüyorum * Yukarıdaki [bu yorum] 'da (https://stackoverflow.com/a/15779452/2156229) – warantesbr

12

İlk parametre olarak, Oracle'ın,'a göre örtülü olarak bir dize dönüştürmesini sağlayabilirsiniz. Bu durumda muhtemelen YY ve YYYY değil.

kahin bir tarih bunu böyle kesmek gerekir zaman değeri olmayan SysDate eklemek istiyorsanız bir tarih ve saat gösteren bir sayı, o bir "biçimini" yok olduğunu:

insert into GtTable 
values('111','Name',300,'Tour',to_date('02/04/2012','DD/MM/YYYY'),trunc(sysdate)) 
+0

[Burada] (http://www.sqlfiddle.com/#!4/d41d8/9426) bir sqlfiddle örneğidir –

0

Ben SİZE GG/AA/YYYY şeklinde sistem tarihini ekler TO_CHAR (SYSDATE, 'GG/AA/YYYY') LET CAN. görüntüleme biçimi ortamı parametresine bağlı olduğunu düşünüyorum, ama bu tarih artık yazın değil.

+1

Bunun iyi bir fikir olduğunu sanmıyorum, çünkü eğer veri türü bir 'DATE' ise oracle dize dolaylı olarak stringi nls_date_format 'a göre bir tarihe dönüştürecek ve' to_char 'fonksiyonu doğru şekilde çalışsa bile, insert başarısız olacaktır. ... [see] (http://www.sqlfiddle.com/#!4/d41d8/9430) –

+0

Yılı, haklısınız. Sadece gg/aa/yyyy olarak görüntülemek istiyorsanız, to_char çalışabilir. Sadece eklemek için, bu sütun veri türü ise, insert başarısız olur.Onları geri alabilirsin, ama bu biraz aptal ... :) – Gentlezerg

İlgili konular