2009-02-26 21 views
3

Varyantta depolanan bir tarihi mon-yy biçiminde (örn. "Feb-09") bir datetime dönüştürmek için basit bir yol var mı? değerleri null.Varchar'ı tekdüze olarak datetime olarak SQL sunucusunda dönüştürme

Şu an için durum bildirimi ile kombine edilmiş string manipülasyonunu kullanıyorum ama oldukça hantal.

+0

Ne tür geçersiz değerler olabilir? – Guffa

+0

Her çeşit çöp gerçekten. Geçersiz girişleri yeterince filtreleyebilirim. Bir örnek "Kasım 2007'de Yeniden Başlatıldı" ... –

+0

Size ilk etapta DateTime olarak saklamak hakkında her zamanki rant veririm, ama zaten yanlış yapan selefiniz olduğunu bildiğinizi sanıyorum. –

cevap

9

geçerli değerleri için sadece bunun bir gün koyabilirsiniz ve tam bir randevu:

convert(datetime,'01-' + 'Feb-09',120) 
+0

Mükemmel! Güzel ve basit, sadece nasıl istersem! –

+0

Teşekkür ederim çok, mükemmel çalışıyor! Benim durumum bir sonraki ay almak zorunda kaldı ... bu yüzden dönüştürmek ve dateAdd ile bir ay eklemek zorunda kaldı. nerede convert (datetime, '01 - '+ MonthCol, 103) = dateAdd (ay, 1, dönüştür (datetime, '01 - '+ MonthCol, 103)) –

0
CONVERT(DATETIME, "Feb-09", 64, 7) 
+0

Bu benim için işe yaramıyor :(Aşağıdakileri denedim: select convert (datetime, MyFieldName, 64, 7) MyTable'dan –

2

Bu yapacaktır.

SELECT convert(datetime,'01-' + 'Feb-09',120) 
+0

.... işareti biraz yavaşlar. –

İlgili konular