On Dec 23, 2008, at 9:10 AM, Jay Pipes wrote:

Tim Soderstrom wrote:
On Dec 23, 2008, at 8:46 AM, Jay Pipes wrote:
Tim Soderstrom wrote:
On Dec 22, 2008, at 9:47 PM, Jay Pipes wrote:
Hi all!

A while ago, the list discussed removing timezones from the server and met with little resistance from folks.

So, some work went in to removing timezones from the server.

However, for reasons I won't go into here, timezones are still present in the server and are causing, let us say, a bit of a headache. If we can fully commit to getting rid of timezones, I think I can dramatically improve the simplicity of how time and dates are handled in the server.

Questions for everyone:

1) What do people think about changing the prescribed behaviour of FROM_UNIXTIME() and UNIX_TIMESTAMP() to *not* take into account the system time zone? Currently, even though we don't support time zones, for some reason, we're currently accounting for the system time zone in these functions. I can't really understand why, and it's causing bugs. :)
I'd say GMT/UTC, but I suppose the application could handle it. I like pushing GMT/UTC though because then you know the time is consistent relative to at least one area of the world and can, thus, simply do the math (which the application could easily do at that point). What I don't want to go back to is being able to store these things in local time. I think that'd be a step backward IMHO. Plus, if someone is replicating to the other side of the world, having times stored in one common, well known, standardized way, would make sense.
<offtopic>
Heck, actually I've been wanting to do an experiment where *I* switch to UTC, just so I can prove to the world (or really just myself) that timezones are stupid and we all should be using UTC no matter where we live. Getting up at 15:30pm or 6:30am is relative. Of course, I also think the US should adopt metric (coming from a native born US citizen even!). Anyways...
</offtopic>
2) What do people think about adding microsecond to the TIMESTAMP data type by default? This would require 4 more bytes of storage per row.
Well, does a Blog post really need microsecond granularity? So I'd say no here, because by 2038, won't we have to expand this again, making it 10 or 12 bytes? I think there should be an additional data-type that does to this (so users have the choice). Like, uhh, FULLTIMESTAMP or something (I'm not very creative this morning...maybe it's because it's before coffee :)

Well, in this case, you would just use a DATETIME, which has precision to the second, no?
Yes, but it's not stored in UTC in MySQL and it consumes 8 bytes (never have figured out why since TIME and DATE each only use 3 bytes) whereas, currently, TIMESTAMP only stores 4 bytes.

Different byte-packing strategies (from manual):

DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32
TIME: A three-byte integer packed as DD×24×3600 + HH×3600 + MM×60 + SS
DATETIME: Eight bytes:
 *  A four-byte integer packed as YYYY×10000 + MM×100 + DD
 *  A four-byte integer packed as HH×10000 + MM×100 + SS

The reason for this is because the data has to be packed into a byte structure so that when read, indexes can access each "part" of the date/time separately by simply dividing or bit-shifting the contents of the field.

Oh snap! I've been wondering that for quite some time. Where is that exactly in the manual (I've looked, but was probably right under my nose)? Thanks Jay!

Tim S.




_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to