It has been a long time since I worked with Interbase, but I don't remember the format you describe as being an Interbase date format. Is this some kind of cobbled up date field? I seem to remember that Interbase supported pretty much standard date management routines, including date formatting for various uses.
I don't have Interbase installed anywhere right now or I would look into this issue a little closer. I do know that I did both data imports and exports to and from Interbase with little or no problems other than the normal self inflicted wounds. Fred > -----Original Message----- > From: RB Smissaert [mailto:[EMAIL PROTECTED] > Sent: Sunday, December 03, 2006 3:40 PM > To: sqlite-users@sqlite.org > Subject: RE: [sqlite] Dealing with dates in the format yyyymmdd > > > If I try to convert the integer Interbase date with standard SQL I get > something like this: > > CAST(CAST((E.ADDED_DATE - (CAST(E.ADDED_DATE / 10000 AS INT) > * 10000)) - " & > _ "CAST((E.ADDED_DATE - CAST(E.ADDED_DATE / 10000 AS INT) * > 10000) AS INT) > AS INT) || '/' || " & "CAST((E.ADDED_DATE - > CAST(E.ADDED_DATE / 10000 AS > INT) * 10000) / 100 AS INT) || '/' || " & "CAST(E.ADDED_DATE > / 10000 AS > INT) AS VARCHAR(10)) > > But I haven't got it working yet. > > RBS > > -----Original Message----- > From: RB Smissaert [mailto:[EMAIL PROTECTED] > Sent: 03 December 2006 21:05 > To: sqlite-users@sqlite.org > Subject: RE: [sqlite] Dealing with dates in the format yyyymmdd > > Is the date function as in: > > Function Overview > > Five date and time functions are available, as follows: > > 1. date( timestring, modifier, modifier, ...) ? > > Will give that a go. > > RBS > > > -----Original Message----- > From: John Stanton [mailto:[EMAIL PROTECTED] > Sent: 03 December 2006 20:46 > To: sqlite-users@sqlite.org > Subject: Re: [sqlite] Dealing with dates in the format yyyymmdd > > Why not use Interbase to transform the date into a character string, > like an ISI8601 date or yymmdd, dd-mm-yyyy etc and then use > the Sqlite > date function to insert it into Sqlite? > > RB Smissaert wrote: > >>It looks like Interbase uses a traditional date format > based on an epoch. > > > > > > It just does year * 10000 + month * 100 + day > > > > > > I suppose I could something like this in SQL: > > > > ((lIBDate - ((lIBDate \ 10000) * 10000 + ((lIBDate - > (lIBDate \ 10000) * > > 10000) \ 100) * 100)) + _ > > (153 * (((lIBDate - (lIBDate \ > 10000) * 10000) \ > > 100) + _ > > 12 * ((14 - ((lIBDate - (lIBDate \ > 10000) > > * 10000) \ 100)) / 12) - 3) + 2) / 5 + _ > > ((lIBDate \ 10000) + 4800 - ((14 - > > ((lIBDate - (lIBDate \ 10000) * 10000) \ 100)) / 12)) * _ > > 365 + ((lIBDate \ 10000) > + 4800 - _ > > ((14 - ((lIBDate - > (lIBDate \ > > 10000) * 10000) \ 100)) / 12)) / 4 - 32083) - _ > > 2415033 > > > > Except it looks a mess and it is one day out, I take it due to not > declaring > > variables as long as in my previously posted function. > > > > RBS > > > > -----Original Message----- > > From: John Stanton [mailto:[EMAIL PROTECTED] > > Sent: 03 December 2006 20:03 > > To: sqlite-users@sqlite.org > > Subject: Re: [sqlite] Dealing with dates in the format yyyymmdd > > > > It looks like Interbase uses a traditional date format based on an > > epoch. That is a system where a base date is set (the > epoch) and the > > date is stored as an offset from that date. It is stored > as an integer. > > > > Sqlite uses a similar system, except that it uses a special epoch > > compatible with other calendars and incorporates the time, > storing all > > of it in a 64 bit floating point format. > > > > You should be able to translate the date into a yymmdd > format of some > > description from Interbase and use that to insert into > Sqlite. The ISO > > 8601 date and time format is a widely used standard. > > > > RB Smissaert wrote: > > > >>>What do you mean by "integer format yyymmdd"? > >> > >> > >>This is an Interbase database and the Create statement of > such a field > > > > would > > > >>be like this: > >> > >>CREATE TABLE ENTRY(ADDED_DATE INTEGER, etc. > >> > >>Not sure what an epoch is, not sure how else to describe it. > >> > >>So, do you reckon I could, given the fact that I have an > integer number in > >>SQLite like 20061203, convert this in SQLite to another > integer number > > > > that > > > >>would give the number of days since 31 December 1899? Or do > you think that > > > > I > > > >>could make accurate dates comparisons in SQLite with > 20061203 etc.? I > >>suppose the trouble will be with weeks and days, years and > months would be > >>fine. So, for example it won't be that simple to say if > 20061203 is more > >>than 10 weeks past 20060920, whereas it will be easy to > calculate that it > > > > is > > > >>less than 3 months passed that date. > >>Is there such a thing as the VB/VBA DateSerial in SQLite? > This means given > >>the year, the month number and day number you can make a date? > >> > >>RBS > >> > >>-----Original Message----- > >>From: John Stanton [mailto:[EMAIL PROTECTED] > >>Sent: 03 December 2006 18:23 > >>To: sqlite-users@sqlite.org > >>Subject: Re: [sqlite] Dealing with dates in the format yyyymmdd > >> > >>What do you mean by "integer format yyymmdd"? Is it an > integer based on > >>an epoch or is it a number like 20061203 stored in a 32 bit word? > >> > >>We use Sqlite format dates and times and thereby get good > SQL capability > >>and have a small library of date function which interface > into Unix and > >>Windows date and time retrieval APIs. A couple of simple > Sqlite custom > >>functions to do some date manipulation made the SQL simpler. > >> > >>Custom date functions are very easy to implement using > Sqlite because > >>you can use the Sqlite date routines and style as a basis. > >> > >>The Sqlite epoch based date format is elegant because it > permits you to > >>present date and time not only according to any time zone > but to comply > >>with more than just the Gregorian calendar - with Middle > Eastern and > >>Oriental ones should the need arise. > >> > >>RB Smissaert wrote: > >> > >> > >>>Trouble is I need to import dates from Interbase that have > the integer > >>>format yyyymmdd. How would I convert that (at import) to > the SQLite date > >>>format? I do the import via an ADO recordset and then move > the data via > >>>SQLite inserts. > >>> > >>>RBS > >>> > >>>-----Original Message----- > >>>From: John Stanton [mailto:[EMAIL PROTECTED] > >>>Sent: 03 December 2006 17:01 > >>>To: sqlite-users@sqlite.org > >>>Subject: Re: [sqlite] Dealing with dates in the format yyyymmdd > >>> > >>>Why not use the internal Sqlite date format. Then date > processing is > >>>straight forward and you can use the conversion routines > to present it > >>>in the various national and ISO formats. > >>> > >>>Sqlite uses a very correct date storage format based on an > epoch way > >>>back in antiquity so that you can present it in any > national format. > >>> > >>>Using the internal format date comparison is just a > numeric compare, > >>>which is efficient. > >>> > >>>If you need any special date presentation you can add a > custome function > >>>to Sqlite to achieve it from your SQL statement. > >>> > >>>RB Smissaert wrote: > >>> > >>> > >>> > >>>>Just thought of one reason why it I need something else > in SQLite than > >>>>yyyymmdd in the date field and that is because I need > date comparisons > >>>>between different tables. So, I need to do: is fieldA + x > days > fieldB? > >>>>etc. > >>>>This will be difficult with the yyyymmdd format. I could of course > update > >>>>all the date fields in a VBA loop, but that might be a > bit slow. So, if > >>>>anybody has an idea how to convert integer yyyymmdd to > the Excel date > >>> > >>>format > >>> > >>> > >>> > >>>>in SQLite I would be interested. > >>>> > >>>>RBS > >>>> > >>>>-----Original Message----- > >>>>From: RB Smissaert [mailto:[EMAIL PROTECTED] > >>>>Sent: 03 December 2006 15:37 > >>>>To: sqlite-users@sqlite.org > >>>>Subject: RE: [sqlite] Dealing with dates in the format yyyymmdd > >>>> > >>>>I think it is easier to do this in VBA and as the main > work is done in a > >>> > >>>VBA > >>> > >>> > >>> > >>>>array it is quite fast as well. Not as elegant maybe as > doing it in > >>> > >>>SQLite, > >>> > >>> > >>> > >>>>but it will do. > >>>> > >>>>RBS > >>>> > >>>>-----Original Message----- > >>>>From: Fred Williams [mailto:[EMAIL PROTECTED] > >>>>Sent: 03 December 2006 14:41 > >>>>To: sqlite-users@sqlite.org > >>>>Subject: RE: [sqlite] Dealing with dates in the format yyyymmdd > >>>> > >>>>Is there a reason you can use Excel's "Format Cells" to > accomplish what > >>>>you wish? Enter a "Custom" format of "yyyy\mm\dd" in a > cell and enter > >>>>"=today()" as a value in that cell. Have not fooled with > Excel much > >>>>lately, but I think you can even format a spreadsheet > programmatically. > >>>> > >>>>Fred > >>>> > >>>> > >>>> > >>>> > >>>> > >>>>>-----Original Message----- > >>>>>From: RB Smissaert [mailto:[EMAIL PROTECTED] > >>>>>Sent: Sunday, December 03, 2006 8:21 AM > >>>>>To: sqlite-users@sqlite.org > >>>>>Subject: [sqlite] Dealing with dates in the format yyyymmdd > >>>>> > >>>>> > >>>>>When moving data from Interbase to SQLite I have to convert > >>>>>integer dates in > >>>>>the format yyyymmdd to Excel dates. These are integer numbers > >>>>>counting the > >>>>>days past 31 December 1899. With substr I can make it > >>>>>dd/mm/yyyy (I am in > >>>>>the UK and that is the normal way to format dates) but the > >>>>>problem is it > >>>>>will be displayed in Excel like mm/dd/yyyy if that would be a > >>>>>possible date. > >>>>>This is due to the US date format of Excel. > >>>>>So, would it be possible in SQLite to make a date format > like this: > >>>>>dd/mmm/yyyy so that would be 03/dec/2006 > >>>>>This would prevent Excel from putting the month first. > >>>>>or alternatively make it the Excel integer date format so the > >>>>>above date > >>>>>would be: 39054 > >>>>> > >>>>>I could handle the date formatting in VBA, but I would like > >>>>>to do as much as > >>>>>possible in SQLite as it will be faster and it would keep the > >>>>>code neater. > >>>>>Thanks for any advice. > >>>>> > >>>>>RBS > >>>>> > >>>>> > >>>>> > >>>>> > >>>>>-------------------------------------------------------------- > >>>>>--------------- > >>>>>To unsubscribe, send email to [EMAIL PROTECTED] > >>>>>-------------------------------------------------------------- > >>>>>--------------- > >>>>> > >>>> > >>>> > >>>> > >>>> > > > -------------------------------------------------------------- > -------------- > > > >>>>- > >>>>To unsubscribe, send email to [EMAIL PROTECTED] > >>>> > >>> > >>> > > > -------------------------------------------------------------- > -------------- > > > >>>>- > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > > > -------------------------------------------------------------- > -------------- > > > >>>>- > >>>>To unsubscribe, send email to [EMAIL PROTECTED] > >>>> > >>> > >>> > > > -------------------------------------------------------------- > -------------- > > > >>>>- > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > > > -------------------------------------------------------------- > -------------- > > > >>>- > >>> > >>> > >>> > >>>>To unsubscribe, send email to [EMAIL PROTECTED] > >>>> > >>> > >>> > > > -------------------------------------------------------------- > -------------- > > > >>>- > >>> > >>> > >>> > >>> > >> > >> > > > -------------------------------------------------------------- > -------------- > > > >>>- > >>>To unsubscribe, send email to [EMAIL PROTECTED] > >>> > >> > >> > > > -------------------------------------------------------------- > -------------- > > > >>>- > >>> > >>> > >>> > >>> > >>> > >> > >> > > > -------------------------------------------------------------- > -------------- > > > >>- > >> > >> > >>>To unsubscribe, send email to [EMAIL PROTECTED] > >>> > >> > >> > > > -------------------------------------------------------------- > -------------- > > > >>- > >> > >> > >> > >> > > > > > -------------------------------------------------------------- > -------------- > > > >>- > >>To unsubscribe, send email to [EMAIL PROTECTED] > >> > > > > > -------------------------------------------------------------- > -------------- > > > >>- > >> > >> > >> > >> > >> > > > > > -------------------------------------------------------------- > -------------- > > - > > > >>To unsubscribe, send email to [EMAIL PROTECTED] > >> > > > > > -------------------------------------------------------------- > -------------- > > - > > > > > > > > > -------------------------------------------------------------- > -------------- > > - > > To unsubscribe, send email to [EMAIL PROTECTED] > > > -------------------------------------------------------------- > -------------- > > - > > > > > > > > > > > -------------------------------------------------------------- > -------------- > - > > To unsubscribe, send email to [EMAIL PROTECTED] > > > -------------------------------------------------------------- > -------------- > - > > > > > -------------------------------------------------------------- > -------------- > - > To unsubscribe, send email to [EMAIL PROTECTED] > -------------------------------------------------------------- > -------------- > - > > > > > -------------------------------------------------------------- > -------------- > - > To unsubscribe, send email to [EMAIL PROTECTED] > -------------------------------------------------------------- > -------------- > - > > > > > -------------------------------------------------------------- > --------------- > To unsubscribe, send email to [EMAIL PROTECTED] > -------------------------------------------------------------- > --------------- > ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------