2011-05-12 28 views
6

2 soru Sorular:SQLite Sorgu

Birincisi, MSSQL, ben

cast('5/31/2011 12:00:00 AM' as datetime) as convertedtodate 

Sonucu yaparak datetime nvarchar dönüştürebilirsiniz: 2011-05-31 00: 00: 00.000

nasıl SQLite'de yapabilir miyim?

İkinci olarak, sqlite'de MS SQL'in datediff işlevinin karşılığı nedir? Örn .:

datediff(Day,'5/30/2011 12:00:00 AM','5/31/2011 12:00:00 AM') as DateAge 

Sonuç: 1

cevap

5

ilk soru (bugüne kadar dizeyi dönüştürmek) cevap vermek için cevapla "değişir" dir. SQLite belirli bir tarih alanına sahip olmadığından, onu dönüştürmeniz gerekmeyebilir. Sadece bir dize alanında saklayabilirsiniz (seçenekler, tarih saklama için gerçek, ya da int vardır). Eğer (1970-01-01 beri saniye sayısını olurdu) bir int dizeyi dönüştürmek istiyorsanız, bunu böyle strftime yöntemini kullanırsınız:

strftime('%s','2011-05-12 01:03:00') 

Sorunuzun ikinci kısmına gelince (iki tarih arasındaki fark), sen SQLite aşağıdaki kodu kullanabilirsiniz: size iki tarih arasındaki saniye sayısını verecektir

strftime('%s','2011-05-12 01:03:00') - strftime('%s','2011-05-08 11:54:09') 

. SQLite'den tam olarak aradığınız şeyi elde etmek için bu bilgilerin yanı sıra çok daha fazlasını oynayabilirsiniz. -

http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions

http://www.sqlite.org/datatype3.html

+0

Bunu kullanarak çalıştı ama O ... ryan @John – BizApps

+0

sonucunu görmek için sqlite yöneticisi work..use değildir: İşte size yardımcı olacak birkaç kaynaklardır Ne demek, işe yaramıyor. Denedim ve benim için çalıştı. İlk o tarihte UNIX saat formatına dönüştürülürken, ikincisi bana iki tarih arasındaki saniye sayısını verdi. Bu bilgi dokümantasyondan doğruca çekiliyor, bu yüzden hangi hataların alındığını bilmek faydalı olacaktır. – IAmTimCorey

+0

@john ryan - strftime SELECT ('% s', '2011-05..' 'Seçeneğini deneyin ve işe yarayıp yaramadığını görün. – JasonFruit