2013-03-30 13 views
7

current_date veya sysdate kullanırken günün saatine kurtulmak için herhangi bir yolu var mı. Ben sadece tarih YYYY-MM-DD depolamaya çalışıyorum, ancak current_date bana veriyor YYYY-MM-DD HH:MM:SS:MSOracle CURRENT_DATE veya sysdate

Ya da tarihleri ​​karşılaştırarak, yalnızca tarihini karşılaştırır ve zaman kadar iyi değil. Herhangi bir yardım harika olurdu, teşekkürler.

+1

İlgili: http://stackoverflow.com/q/7604167/1065197 –

+0

zaman biçimi 'HH: MM: SS: MS' yanlıştır. 'MM' sayısal bir ayı temsil eder (' MS' de tanınmadı). HH: MI: SS' olmalıdır. Milisaniye ihtiyacınız varsa, Oracle 'DATE' tipi bir alanda yalnızca ikinci olan kesimleri sakladığı için' TIMESTAMP' veri türünü kullanmanız gerekir. – Lion

+1

Oracle'da DATE veri türü YEAR, MONTH, DAY, HOURS, MINUTES ve SECONDS alanlarını içerir. YALNIZCA YIL, AY ve GÜN alanlarını depolamak için Oracle'da veri türü yoktur. –

cevap

19

Belki

trunc(sysdate) 

fonksiyonunu denemelisiniz.

+0

Saati 00:00:00 olarak depolar ama yine de çalışır. Teşekkürler. – roverred

+0

Evet, tarih türü ancak tam zamanı olmadan kalır. Gerçekten gibi – rusty

1

Rusty saat bölümünü sıyırma ilgili sorunuz kısmını cevap verdi. Tarihleri ​​karşılaştırırken zamanın birleştirilmesiyle ilgili kısım genellikle böyle yapılır.

where YourDateField >= StartDate 
and YourDateField < TheDayAfterEndDate 

Belirli bir tarihte aramak isterseniz, StartDate ve EndDate aynı olur.

+0

ben 'BaşlangıçTarihi <= YourDateField ve çeşit matematik gibi YourDateField