public override string ConvertToString(object a) { if (a == null) { return(null); } switch (base.TypeCode) { case 0x5b: return(UtlDateTime.GetDateString(((TimestampData)a).GetSeconds())); case 0x5c: case 0x5e: { TimeData data = (TimeData)a; int num2 = NormaliseTime(data.GetSeconds() + data.GetZone()); string str2 = base.IntervalSecondToString((long)num2, data.GetNanos(), false); if (this._withTimeZone) { str2 = SqlType.SqlIntervalHourToMinute.IntervalSecondToString((long)data.GetZone(), 0, true); StringBuilder builder1 = new StringBuilder(str2); builder1.Append(str2); return(builder1.ToString()); } return(str2); } case 0x5d: case 0x5f: { TimestampData data2 = (TimestampData)a; StringBuilder sb = new StringBuilder(); UtlDateTime.GetTimestampString(sb, data2.GetSeconds() + data2.GetZone(), data2.GetNanos(), base.Scale); if (this._withTimeZone) { string str3 = SqlType.SqlIntervalHourToMinute.IntervalSecondToString((long)data2.GetZone(), 0, true); sb.Append(str3); return(sb.ToString()); } return(sb.ToString()); } } throw Error.RuntimeError(0xc9, "DateTimeType"); }
public override object ConvertSQLToCSharp(ISessionInterface session, object a) { if (a == null) { return(null); } switch (base.TypeCode) { case 0x5b: { long seconds = ((TimestampData)a).GetSeconds(); seconds = UtlDateTime.ConvertTicksToTimeZone(session.GetTimeZone(), seconds * 0x989680L) / 0x989680L; return(new DateTime(UtlDateTime.GetNormalisedDate(seconds) * 0x989680L)); } case 0x5c: { long seconds = ((TimeData)a).GetSeconds(); seconds = UtlDateTime.ConvertTicksToTimeZone(session.GetTimeZone(), seconds * 0x989680L) / 0x989680L; return(new DateTime(UtlDateTime.GetNormalisedTime(seconds) * 0x989680L)); } case 0x5d: { TimestampData data = (TimestampData)a; long seconds = data.GetSeconds(); seconds = UtlDateTime.ConvertTicksToTimeZone(session.GetTimeZone(), seconds * 0x989680L) / 0x989680L; return(new DateTime((seconds * 0x989680L) + (data.GetNanos() / 100))); } case 0x5e: { TimeData data2 = (TimeData)a; return(new DateTime(UtlDateTime.GetNormalisedTime((long)(data2.GetSeconds() + data2.GetZone())) * 0x989680L)); } case 0x5f: { TimestampData data3 = (TimestampData)a; return(new DateTime((data3.GetSeconds() * 0x989680L) + (data3.GetNanos() / 100))); } } throw Error.RuntimeError(0xc9, "DateTimeType"); }
public object GetValue(long seconds, int nanos, int zoneSeconds) { switch (base.TypeCode) { case 0x5b: seconds = UtlDateTime.GetNormalisedDate(seconds + zoneSeconds); return(new TimestampData(seconds)); case 0x5c: seconds = UtlDateTime.GetNormalisedTime(seconds + zoneSeconds); return(new TimeData(seconds, nanos)); case 0x5d: return(new TimestampData(seconds + zoneSeconds, nanos)); case 0x5e: seconds = UtlDateTime.GetNormalisedTime(seconds); return(new TimeData((long)((int)seconds), nanos, zoneSeconds)); case 0x5f: return(new TimestampData(seconds, nanos, zoneSeconds)); } throw Error.RuntimeError(0xc9, "DateTimeType"); }
public override object ConvertToType(ISessionInterface session, object a, SqlType othType) { if (a == null) { return(a); } switch (othType.TypeCode) { case 0x5b: case 0x5c: case 0x5d: case 0x5e: case 0x5f: goto Label_0126; case 100: case 1: case 12: break; case 40: case 0x19: case 3: case 4: case 8: a = a.ToString(); break; default: throw Error.GetError(0x15b9); } int typeCode = base.TypeCode; if (typeCode != 0x5b) { if ((typeCode - 0x5c) <= 3) { goto Label_0105; } goto Label_0126; } try { DateTime time = DateTime.Parse((string)a, CultureInfo.InvariantCulture); long seconds = time.Ticks / 0x989680L; long num4 = (time.Ticks - (seconds * 0x989680L)) * 100L; return(new TimestampData(seconds, (int)num4)); } catch (Exception) { return(session.GetScanner().ConvertToDatetimeInterval(session, (string)a, this)); } Label_0105: return(session.GetScanner().ConvertToDatetimeInterval(session, (string)a, this)); Label_0126: switch (base.TypeCode) { case 0x5b: switch (othType.TypeCode) { case 0x5b: return(a); case 0x5d: return(new TimestampData(UtlDateTime.GetNormalisedDate(((TimestampData)a).GetSeconds()))); case 0x5f: return(new TimestampData(UtlDateTime.GetNormalisedDate(((TimestampData)a).GetSeconds() + ((TimestampData)a).GetZone()))); } break; case 0x5c: switch (othType.TypeCode) { case 0x5c: return(this.ConvertToTypeLimits(session, a)); case 0x5d: { TimestampData data = (TimestampData)a; return(new TimeData((long)((int)data.GetSeconds()), this.ScaleNanos(data.GetNanos()))); } case 0x5e: { TimeData data2 = (TimeData)a; return(new TimeData((long)(data2.GetSeconds() + data2.GetZone()), this.ScaleNanos(data2.GetNanos()), 0)); } case 0x5f: { TimestampData data3 = (TimestampData)a; return(new TimeData((long)(((int)data3.GetSeconds()) + data3.GetZone()), this.ScaleNanos(data3.GetNanos()), 0)); } } throw Error.GetError(0x15b9); case 0x5d: switch (othType.TypeCode) { case 0x5b: return(a); case 0x5c: { TimeData data4 = (TimeData)a; return(new TimestampData(session.GetCurrentDate().GetSeconds() + data4.GetSeconds(), this.ScaleNanos(data4.GetNanos()))); } case 0x5d: return(this.ConvertToTypeLimits(session, a)); case 0x5e: { TimeData data5 = (TimeData)a; return(new TimestampData((session.GetCurrentDate().GetSeconds() + data5.GetSeconds()) - session.GetZoneSeconds(), this.ScaleNanos(data5.GetNanos()), session.GetZoneSeconds())); } case 0x5f: { TimestampData data6 = (TimestampData)a; return(new TimestampData(data6.GetSeconds() + data6.GetZone(), this.ScaleNanos(data6.GetNanos()))); } } throw Error.GetError(0x15b9); case 0x5e: switch (othType.TypeCode) { case 0x5c: { TimeData data7 = (TimeData)a; return(new TimeData((long)(data7.GetSeconds() - session.GetZoneSeconds()), this.ScaleNanos(data7.GetNanos()), session.GetZoneSeconds())); } case 0x5d: { TimestampData data8 = (TimestampData)a; return(new TimeData((long)(((int)data8.GetSeconds()) - session.GetZoneSeconds()), this.ScaleNanos(data8.GetNanos()), session.GetZoneSeconds())); } case 0x5e: return(this.ConvertToTypeLimits(session, a)); case 0x5f: { TimestampData data9 = (TimestampData)a; return(new TimeData((long)((int)data9.GetSeconds()), this.ScaleNanos(data9.GetNanos()), data9.GetZone())); } } throw Error.GetError(0x15b9); case 0x5f: switch (othType.TypeCode) { case 0x5b: return(new TimestampData(((TimestampData)a).GetSeconds(), 0, session.GetZoneSeconds())); case 0x5c: { TimeData data10 = (TimeData)a; return(new TimestampData((session.GetCurrentDate().GetSeconds() + data10.GetSeconds()) - session.GetZoneSeconds(), this.ScaleNanos(data10.GetNanos()), session.GetZoneSeconds())); } case 0x5d: { TimestampData data11 = (TimestampData)a; return(new TimestampData(data11.GetSeconds() - session.GetZoneSeconds(), this.ScaleNanos(data11.GetNanos()), session.GetZoneSeconds())); } case 0x5e: { TimeData data12 = (TimeData)a; return(new TimestampData(session.GetCurrentDate().GetSeconds() + data12.GetSeconds(), this.ScaleNanos(data12.GetNanos()), data12.GetZone())); } case 0x5f: return(this.ConvertToTypeLimits(session, a)); } throw Error.GetError(0x15b9); default: throw Error.RuntimeError(0xc9, "DateTimeType"); } throw Error.GetError(0x15b9); }
public override object ConvertCSharpToSQL(ISessionInterface session, object a) { int zoneSeconds; long normalisedTime; if (a == null) { return(null); } DateTime?nullable = a as DateTime?; if (!nullable.HasValue) { throw Error.GetError(0x15b9); } DateTime time = nullable.Value; switch (base.TypeCode) { case 0x5b: return(new TimestampData(UtlDateTime.GetNormalisedDate(UtlDateTime.ConvertTicksFromTimeZone(session.GetTimeZone(), time.Ticks) / 0x989680L))); case 0x5c: case 0x5e: zoneSeconds = 0; if (base.TypeCode != 0x5c) { normalisedTime = time.Ticks / 0x989680L; zoneSeconds = session.GetZoneSeconds(); break; } normalisedTime = UtlDateTime.ConvertTicksFromTimeZone(session.GetTimeZone(), time.Ticks) / 0x989680L; break; case 0x5d: case 0x5f: { long ticks; int zoneSeconds = 0; if (base.TypeCode != 0x5d) { ticks = time.Ticks; zoneSeconds = session.GetZoneSeconds(); } else { ticks = UtlDateTime.ConvertTicksFromTimeZone(session.GetTimeZone(), time.Ticks); } long num7 = ticks / 0x989680L; int num8 = ((int)(ticks - (num7 * 0x989680L))) * 100; return(new TimestampData(ticks / 0x989680L, DTIType.NormaliseFraction(num8, base.Scale), zoneSeconds)); } default: throw Error.GetError(0x15b9); } normalisedTime = UtlDateTime.GetNormalisedTime(normalisedTime); int fraction = (int)((time.Ticks * 100L) - (normalisedTime * 0x3b9aca00L)); return(new TimeData((long)((int)normalisedTime), DTIType.NormaliseFraction(fraction, base.Scale), zoneSeconds)); }