Depends on the format of the Database value.
Column type => Format
DATETIME => 0000-00-00 00:00:00
DATE => 0000-00-00
TIMESTAMP => 0000-00-00 00:00:00
TIME => 00:00
YEAR => 0000
If you use mySQL's UNIX_TIMESTAMP() function then that is just the seconds since the Unix epoch, which can then be converted into any date format in any program 😉 Also note, that previous to mySQL 4.1, the timestamp was without formatting (YYYYMMDDHHMMSS).
Personally, I prefer to use Unix Timestamps to compare everything. This way, I can format it as I please (or as my users please) and comparison is very, very easy. If x > y or if x < y do K. Now, I'm not comparing dates that are formatted, but rather numerical values. This way, you don't worry about formatting until the very end when you display it for the user. Honestly, it's a very nice way to do it.
some prior time < > NOW()
Do you mean user-input is between some prior time and NOW()? If so, then just do this:
SELECT *
FROM `posts`
WHERE UNIX_TIMESTAMP(time) > UNIX_TIMESTAMP($some_prior_time)
AND UNIX_TIMESTAMP(time) < UNIX_TIMESTAMP(NOW())
This will allow you to choose any time and put it in whatever format you please. UNIX_TIMESTAMP is a nice function to go from formatted dates, to actual seconds easily. Now you're comparing times, and NOT formatted dates. Much easier.
To get the information into a human readable format, you'd either use FROM_UNIXTIME() or just something quick like date($timestamp);