2008-08-14 19 views
1

ich vermute, ich muss es etwas sein wie:T-SQL-Datumsformat für Sekunden seit dem letzten Epoche/Formatierung für SQLite-Eingang

CONVERT(CHAR(24), lastModified, 101) 

Jedoch habe ich von den richtigen Wert für den dritten Parameter nicht sicher bin, .

Danke!


Nun Ich versuche, ein Skript zu schreiben, meine SQL Server db zu einer SQLite-Datei zu kopieren, die mit einer Luft App heruntergeladen werden, der dann die Daten an einem anderen SQLite-Datei synchronisiert. Ich habe eine Menge Ärger mit Daten. Wenn ich ein Datum in der Luft auswähle und versuche, es einzufügen, schlägt es fehl, weil es nicht im richtigen Format ist ... selbst wenn es ein gültiges Datum war, mit dem ich anfangen soll. Ich dachte, ich würde versuchen, mit der Unix-Zeit zu experimentieren, denn das ist das einzige, was bisher funktioniert hat. Ich überlege gerade, sie als Varchar zu belassen, weil ich sowieso nicht nach ihnen sortiere.

Antwort

1

Ich zog mit Format 120 in MS SQL:

convert(char(24), lastModified, 120) 

Jedes Mal, wenn ich zu einem Wählen Sie ein Datum für I nicht zu Anzeigezwecken in SQLite Bedarf verwendet:

strftime(\"%Y-%m-%d %H:%M:%S\", dateModified) as dateModified 

Jetzt nur ich brauche lesbare/freundliche Weise, um dem Benutzer das Datum anzuzeigen!

bearbeiten: Antwort akzeptieren geht an wer zeigt mir, wie das Datum von SQLite schön anzuzeigen; p

+0

Herausforderung angenommen: Nicht ganz sicher, was meinst du mit "schön anzeigen", also rate ich mal du meinst ... – Noah

+0

bin mir nicht ganz sicher, wofür ich das gebraucht habe, da es vor 2 1/2 Jahren her ist – Shawn

0

Definieren Sie "letzte Epoche". Kommt das nahe?

Select Besetzung (lastModified As Integer)

2

Letzte Epoche ist, wenn 1970 GMT?

SELECT DATEDIFF(s,'19700101 05:00:00:000',lastModified) 

Siehe auch Epoch Date

0

Wenn Sie sie als varchar speichern, speichern Sie sie als JJJJMMTT. So können Sie später nach ihnen sortieren, wenn Sie möchten.

0

SQL Server hat nur 2 Failsafe-Datumsformate

ISO = JJJJMMTT, führen diese zu sehen, dass

select convert(varchar(10),getdate(),112) 

ISO8601 = yyyy-mm-dd Thh: mm: ss: mmm (ohne Leerzeichen) laufen, das zu sehen, dass

select convert(varchar(30),getdate(),126) 

um mehr zu erfahren über wie Daten in SQL Server gespeichert sind, ich How Are Dates Stored In SQL Server? schrieb

2

sqlite>select datetime();
2011-01-27 19:32:57

sqlite>select strftime ('% Y-% m-% d% H:% M:% S', 'jetzt');
2011-01-27 19:33:57

REFERENZ:
(Datum Zeit-Funktionen) [http://sqlite.org/lang_datefunc.html]