# Django 2.1.8.dev20190330215650 documentation

# PostgreSQL specific database functions

All of these functions are available from the `django.contrib.postgres.functions` module.

## `RandomUUID`

class `RandomUUID`

New in Django 2.0:

Returns a version 4 UUID.

The pgcrypto extension must be installed. You can use the `CryptoExtension` migration operation to install it.

Usage example:

    >>> from django.contrib.postgres.functions import RandomUUID
    >>> Article.objects.update(uuid=RandomUUID())

## `TransactionNow`

class `TransactionNow`

Returns the date and time on the database server that the current transaction started. If you are not in a transaction it will return the date and time of the current statement. This is a complement to `django.db.models.functions.Now`, which returns the date and time of the current statement.

Note that only the outermost call to `atomic()` sets up a transaction and thus sets the time that `TransactionNow()` will return; nested calls create savepoints which do not affect the transaction time.

Usage example:

    >>> from django.contrib.postgres.functions import TransactionNow
    >>> Article.objects.filter(published__lte=TransactionNow())
    <QuerySet [<Article: How to Django>]>