DateTimeField fetched with scalar() has different type in Postgres vs. SQLite
Whoa...what version of SQLite is your Python driver using? You can run `from peewee import sqlite3; print sqlite3.sqlite_version_info` I believe. Are the sqlite values being inserted as timestamps? You can open a sqlite shell and check. 
 As an example, here's what I get when I run a similar query against my blog's database:

``` python
In [1]: Entry.created_date
Out[1]: <peewee.DateTimeField at 0x7fc87b4ac7d0>

In [2]: Entry.select(fn.MAX(Entry.created_date)).scalar()
Out[2]: u'2016-03-22 23:16:57.058839'

In [3]: from peewee import sqlite3; print sqlite3.sqlite_version_info
(3, 11, 0)
```

Are you using a trigger to set the `updated_at` value, or specifying a default value generated by the database?
 Looks like it's 3.9.2.  I was inserting is as a `time` in my first example, but updating to insert a `datetime.datetime` I receive a unicode string back, also not what I'm getting from Postgres (`datetime.datetime`).

Here are how the columns are defined in the Postgres database:

```
    created_at timestamp without time zone NOT NULL,
    updated_at timestamp without time zone NOT NULL,
```

To give some context here, I'm using SQLite just for running the test suite, and Postgres for actual app usage.
 Welllll, I think you answered your own question. It's called a `DateTimeField` because it should be given `datetime` objects.

I meant to also show the use of the `convert` parameter to `scalar()` which I had sadly forgotten to document. At any rate, [I've added documentation](http://docs.peewee-orm.com/en/latest/peewee/api.html#Query.scalar), and this is the behavior:

``` python
In [1]: Entry.select(fn.MAX(Entry.created_date)).scalar(convert=True)
Out[1]: datetime.datetime(2016, 3, 22, 23, 16, 57, 58839)

In [2]: Entry.select(fn.MAX(Entry.created_date)).scalar(convert=False)
Out[2]: u'2016-03-22 23:16:57.058839'
```

The reason, I believe, that you aren't seeing similar behavior with Postgresql is because `psycopg2`, the Postgresql/Python library, is doing the conversion before the data gets to peewee.

I think you're best off just hucking some `datetime.datetime()` objects in there, or implementing a custom field that converts timestamps into datetime objects (and remembering to pass `convert=True` when using scalar).

Fetching a DateTimeField with scalar() yields a datetime for Postgres, and a float for SQLite.  While SQLite does not have a distinct storage type for dates/times, I'd still expect the same type to be returned from Peewee.

With Postgres

```
>>> Profiles.select(fn.Max(Profiles.updated_at)).scalar()
datetime.datetime(2016, 4, 29, 16, 52, 33, 445791)
```

With SQLite

```
>>> Profiles.select(fn.Max(Profiles.updated_at)).scalar()
1462992876.32
```
