How to get date or date from SQLite3 string?

There is no function sqlite3_column_datethat I need:

int i = 0;
for (NSString *key in [self valuesWithTypes]) {
  id value;
  if ([[[self valuesWithTypes] objectForKey:key] isKindOfClass:[NSString class]]) {
    value = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, i)] autorelease];
  }
  else if ([[[self valuesWithTypes] objectForKey:key] isKindOfClass:[NSNumber class]]) {
    value = [[NSNumber numberWithDouble:sqlite3_column_double(statement, i)] autorelease];
  }
  else if ([[[self valuesWithTypes] objectForKey:key] isKindOfClass:[NSDate class]]) {
//  value = // WTF
  }
  else if ([[[self valuesWithTypes] objectForKey:key] isKindOfClass:[NSData class]]) {
    value = [[NSData dataWithBytes:sqlite3_column_blob(statement, i) length:sqlite3_column_bytes(statement, i)] autorelease];
  }
  [rowDictionary setValue:value forKey:key];
  i++;
}

In SQLite3 tables, a date / date column can be entered. But how, in the name of the holy Lord, can I get a date column from a row?

thank

+3
source share
1 answer

As per SQLite documentation, there is no date / datetime column.

There are three options on this page:

  • TEXT
  • REAL
  • INTEGER

TEXT may be a more beautiful option if you need to directly look at the data.
I never used REAL. I like the timestamps of INTEGER and UNIX :-)

32- UNIX problem, ( 64 ), . , .

+4

Source: https://habr.com/ru/post/1767749/


All Articles