2011-09-24 21 views
28

Masamıza bir satır eklerken sorun yaşıyorum. İşte insert deyimi ve tablo oluşturma. Bu tek bir atamanın bir parçasıdır, dolayısıyla basitlik, ne yapıyorum yanlış? Oracle SQL geliştirici Sürüm 3.0.04 kullanıyorum. 'Oracle'da tarih ve saat nasıl eklenir?

Sahip olduğum sorun, yalnızca dd/mon/yy eklenmesi değil, zamanı değil. Zamanı eklemek için nasıl alabilirim?

INSERT INTO WORKON (STAFFNO,CAMPAIGNTITLE,DATETIME,HOURS) 
VALUES ('102','Machanic Summer Savings',TO_DATE('22/April/2011 8:30:00AM','DD/MON/YY HH:MI:SSAM'),'3') 
; 

CREATE TABLE WorkOn 
(
    StaffNo  NCHAR(4), 
    CampaignTitle VARCHAR(50), 
    DateTime  DATE, 
    Hours   VARCHAR(2) 
) 
; 

Yardımlarınız için teşekkürler.

DÜZENLEME: Bu bir anlam ifade etmiyor, zamanın çalışıp çalışmadığını test etmek için sahada sadece bir zaman giriyorum ve bir tarih WTF çıkışı veriyor mu? Bu, ben bu verileri manipüle sorunlarına neden olur fark ı bir tarih alanı kullanmak ve sadece zaman giremezler gerçekten garip ama bu mantıklı yapıyor ...

+0

Tablo tanımınızı da paylaşın - 'DESC WORKON' –

cevap

29

Bir to_date işlevi kullanarak ve saati belirterek her şeyi doğru yapıyorsunuz. Veritabanında zaman var. Sorun şu ki, veritabanından DATE veri türü bir sütun seçtiğinizde, varsayılan biçim maskesi saati göstermez. Bir

alter session set nls_date_format = 'dd/MON/yyyy hh24:mi:ss'

veya zaman bileşeni içeren benzer bir şey vermek varsa, zaman başarıyla veritabanına haline getirdiler göreceksiniz.

Saygılarımızla,
Rob.

+0

omg, sadece bir son sayı, tüm tarih biçimlendirilmiş sütunlar için biçimi ayarlar, sadece tarihin gösterilmesini istediğim sütunları gösteren zamanı gösterir. Belirli bir tablo için belirtmek mümkün mü? – Deep

+1

daha sonra seçim ifadenizde tarih formatı maskesini belirtmeniz gerekir. "To_time (datetime, 'dd-aa-yyyy hh24: mi: ss') datetime 'dan çalışma zamanı" gibi bir şey. –

+0

Bu 'oturumu değiştir' komutu bir godsend (ben tam bir Oracle newb). Sağol Rob. –

4

bu deneyin:

.. (to_date('2011/04/22 08:30:00', 'yyyy/mm/dd hh24:mi:ss'));

+0

hayır aynı şeyi yapar, sadece tarihi gösterir. – Deep

+0

Üzgünüz, bir yazım hatası yaşadım. Lütfen tekrar deneyin. – jschorr

+0

Merhaba hala çalışmıyor, sadece tarih bölümünü ekler ve zamanı yok sayar. Eğer sadece bir zaman girersek, sadece bir tarihe dönüştürür ... MySQL bana nazaran daha mantıklı geliyor ... – Deep

29

Sen

insert into table_name 
(date_field) 
values 
(TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss')); 

Umarım yardımcı olur kullanabilirsiniz.

İlgili konular