type timestamp = Time.time
exception Format of string
+ fun isNull s = s = ""
+
fun intToSql n =
if n < 0 then
"-" ^ Int.toString(~n)
fun offsetStr NONE = "+00"
| offsetStr (SOME n) =
let
- val n = Int32.toInt (Time.toSeconds n) div 3600
+ val n = LargeInt.toInt (Time.toSeconds n) div 3600
in
if n < 0 then
"-" ^ pad (~n, 2)
in
case tokens of
[year, mon, day, hour, minute, second, _, offset] =>
- Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute,
+ Date.toTime (Date.date {day = intFromSql day, hour = intFromSql hour, minute = intFromSql minute,
month = toMonth (intFromSql mon),
- offset = SOME (Time.fromSeconds (Int32.fromInt (intFromSql offset * 3600))),
+ offset = SOME (Time.fromSeconds (LargeInt.fromInt (intFromSql offset * 3600))),
second = intFromSql second div 1000, year = intFromSql year})
| [year, mon, day, hour, minute, second, _] =>
- Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute,
+ Date.toTime (Date.date {day = intFromSql day, hour = intFromSql hour, minute = intFromSql minute,
month = toMonth (intFromSql mon),
offset = NONE,
- second = intFromSql second div 1000, year = intFromSql year})
+ second = intFromSql second, year = intFromSql year})
| [year, mon, day, hour, minute, second] =>
- Date.toTime (Date.date {day = intFromSql day, hour = intFromSql mon, minute = intFromSql minute,
+ Date.toTime (Date.date {day = intFromSql day, hour = intFromSql hour, minute = intFromSql minute,
month = toMonth (intFromSql mon),
offset = NONE,
second = intFromSql second div 1000, year = intFromSql year})