Skip to main content

SQLAlchemy type to store aware datetime values

Project description

SQLAlchemy-Utc

https://badge.fury.io/py/SQLAlchemy-Utc.svg? https://travis-ci.com/spoqa/sqlalchemy-utc.svg?branch=master https://codecov.io/github/spoqa/sqlalchemy-utc/coverage.svg?branch=master

This package provides a drop-in replacement of SQLAlchemy’s built-in DateTime type with timezone=True option enabled. Although SQLAlchemy’s built-in DateTime type provides timezone=True option, since some vendors like SQLite and MySQL don’t provide timestamptz data type, the option doesn’t make any effect on these vendors.

UtcDateTime type is equivalent to the built-in DateTime with timezone=True option enabled on vendors that support timestamptz e.g. PostgreSQL, but on SQLite or MySQL, it shifts all datetime.datetime values to UTC offset before store them, and returns always aware datetime.datetime values through result sets.

Long story short, UtcDateTime does:

  • take only aware datetime.datetime,

  • return only aware datetime.datetime,

  • never take or return naive datetime.datetime,

  • ensure timestamps in database always to be encoded in UTC, and

  • work as you’d expect.

A SQLAlchemy helper function, utcnow(), is provided as an alternative to func.now() for generating UtcDateTime values on the server. For example: Column('time', UtcDateTime(), default=utcnow()).

Written by Hong Minhee at Spoqa, and distributed under MIT license.

Changelog

0.14.0

Released on September 24, 2021.

  • Add cache_ok flag on UtcDateTime to supress Pandas warnings. [#14 by derekderie]

0.13.0

Released on September 24, 2021.

  • Add milliseconds to SQLite datetimes. [#12 by Giovanni Santini]

  • Add support for newer python versions. (3.7, 3.8, 3.9) [#12 by Giovanni Santini]

0.12.0

Released on May 7, 2021.

  • Add py.typed file to the package to be compatible with PEP-561. [#10 by Dima Boger]

0.11.0

Released on November 13, 2020.

  • Ensured always returning the datetime with UTC timezone. [#8 by Eduard Christian Dumitrescu]

0.10.0

Released on January 25, 2018.

  • Dropped support of older Python versions: 2.6, 3.2, and 3.3. [#2 by George Leslie-Waksman]

  • Added sqlalchemy_utc.utcnow() function as an alternative to sqlalchemy.sql.functions.now() for generating UtcDateTime values on the database server. [#4 by George Leslie-Waksman]

0.9.0

First version. Released on June 22, 2016.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SQLAlchemy-Utc-0.14.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

SQLAlchemy_Utc-0.14.0-py2.py3-none-any.whl (6.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file SQLAlchemy-Utc-0.14.0.tar.gz.

File metadata

  • Download URL: SQLAlchemy-Utc-0.14.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for SQLAlchemy-Utc-0.14.0.tar.gz
Algorithm Hash digest
SHA256 8e041624595b66d7b1d5ea8b6de486df5c1b9352697f3b24f862f0ded56cd7aa
MD5 058814689d97a716d1a8f7388fcda085
BLAKE2b-256 5cdb2d8f421cece2758954278bd16e05e3f73ce86c0062577a1ccfd3eb4208cd

See more details on using hashes here.

File details

Details for the file SQLAlchemy_Utc-0.14.0-py2.py3-none-any.whl.

File metadata

  • Download URL: SQLAlchemy_Utc-0.14.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for SQLAlchemy_Utc-0.14.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d2379eed5cce372128b5e744ce382decd262b2c742ab31f7f22ca11c6647f60b
MD5 0d0fef7ff6cc8ad94be3b85d4d421b82
BLAKE2b-256 e789ccfe4b579784f852c64f0fcb127e560990c2d75a2514dda51a9c87fb3782

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page