summaryrefslogtreecommitdiff
path: root/psycopg/adapter_datetime.c
diff options
context:
space:
mode:
authorFederico Di Gregorio <fog@initd.org>2006-09-30 06:16:24 +0000
committerFederico Di Gregorio <fog@initd.org>2006-09-30 06:16:24 +0000
commit168d9c36afda957921349f39b934b0acf9cd6b65 (patch)
tree30b8531865e098896502eccd6c9c3819ada3152d /psycopg/adapter_datetime.c
parentca860424e6a7ae486b58b0f57d0691b372de59f5 (diff)
downloadpsycopg2-168d9c36afda957921349f39b934b0acf9cd6b65.tar.gz
Fractionary seconds fix (closes: #130)
Diffstat (limited to 'psycopg/adapter_datetime.c')
-rw-r--r--psycopg/adapter_datetime.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/psycopg/adapter_datetime.c b/psycopg/adapter_datetime.c
index 6409cef..9129ca6 100644
--- a/psycopg/adapter_datetime.c
+++ b/psycopg/adapter_datetime.c
@@ -375,8 +375,10 @@ psyco_TimeFromTicks(PyObject *self, PyObject *args)
return NULL;
t = (time_t)round(ticks);
+ ticks -= (double)t;
if (localtime_r(&t, &tm)) {
- args = Py_BuildValue("iid", tm.tm_hour, tm.tm_min, (double)tm.tm_sec);
+ args = Py_BuildValue("iid", tm.tm_hour, tm.tm_min,
+ (double)tm.tm_sec + ticks);
if (args) {
res = psyco_Time(self, args);
Py_DECREF(args);
@@ -397,10 +399,12 @@ psyco_TimestampFromTicks(PyObject *self, PyObject *args)
return NULL;
t = (time_t)round(ticks);
+ ticks -= (double)t;
if (localtime_r(&t, &tm)) {
args = Py_BuildValue("iiiiidO",
tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
- tm.tm_hour, tm.tm_min, (double)tm.tm_sec,
+ tm.tm_hour, tm.tm_min,
+ (double)tm.tm_sec + ticks,
pyPsycopgTzLOCAL);
if (args) {
res = psyco_Timestamp(self, args);