Re: CURRENT_DATE and CURRENT_TIME return incorrect values - Mailing list pgsql-general
From | Nigel J. Andrews |
---|---|
Subject | Re: CURRENT_DATE and CURRENT_TIME return incorrect values |
Date | |
Msg-id | Pine.LNX.4.21.0305301837280.18415-100000@ponder.fairway2k.co.uk Whole thread Raw |
In response to | Re: CURRENT_DATE and CURRENT_TIME return incorrect values (valerian <valerian2@hotpop.com>) |
Responses |
Re: CURRENT_DATE and CURRENT_TIME return incorrect values
|
List | pgsql-general |
The big question is: Can you repeat it? The next big question is: Can you supply a complete example of how to repeat it. The only things that crossed my mind were a) you started a transaction on the 26th and only wrote that record on the 28th or b) which ever system you were querying the time of to get the 28th had a different time to the database server. Is there some reason you are splitting the order time and date into two columns rather than using a single timestamp one? -- Nigel Andrews On Fri, 30 May 2003, valerian wrote: > On Thu, May 29, 2003 at 07:57:39PM -0500, DeJuan Jackson wrote: > > Did you create the table on 2003-05-26 by any chance? > > Nope, that table has been around for about a month or so. I haven't even > made any recent changes to it. > > > It appears that the CURRENT_DATE/CURRENT_TIME in your create table > > statement got interpreted, and replaced, so every record that ever gets > > inserted will have the same date and time. > > use a \d table_name in psql to confirm. > > You should be able to alter the table/columns and correct the problem. > > The \d output looks like this: > > Column | Type | Modifiers > ------------------+---------------------+----------------------------------------------- > order_date | date | default date('now'::text) > order_time | time with time zone | default ('now'::text)::time(6) with time zone > setup_date | date | > last_update | date | default date('now'::text) > > I think this is correct? I want pgsql to enter the current date/time in > by default. It normally seems to work ok, except that one time a couple > days ago when it entered '2003-05-26' instead of '2003-05-28' for some > reason that I don't understand. Especially considering that it entered > the correct date/time when I added another row just a few minutes later... > > It's very strange. I think it would be difficult to reproduce this > behavior because my DB had been sitting around mostly idle for some > time, and I've never seen this happen before. > > I'm fairly certain the problem is related to pgsql because my system > time has been accurate all along. In other words, the system time > didn't jump from 2003-05-26 to 2003-05-28 in one instant. My > apache logs show regular hits for that date range, and so do the other > system logs (ie, /var/log/messages has normal, regular entries). > > The only thing I can think of is that pgsql cached an old date and time, > for some reason, and used that for the first record, and then actually > queried the system's date/time after that. But that sounds pretty > weird... > > I really need for the order_date to be 100% accurate though, because my > application must do calculations based on that. So I'm thinking about > having have it grab the date/time directly from the system clock and > enter it instead of leaving that to pgsql. Unless anyone can point out > where I made an error. >
pgsql-general by date: