monolayer / schema / timestamp
Function: timestamp()
timestamp(
precision
?):PgTimestamp
Column that stores both date and time without time zone with an optional precision.
Parameters
Parameter | Type | Description |
---|---|---|
precision ? | DateTimePrecision | Number of fractional digits retained in the seconds field. The allowed range is from 0 to 6. |
Returns
Remarks
Without precision
specified, there is no explicit bound on precision. It can store date / times between 4713 BC and 294276 AD.
The JavaScript Date
implementation can represent only a maximum of September 13, 275760 AD. If you need to read/store dates after this maximum, you'll have to implement a custom type serializer and parser with node-pg-types.
Kysely database schema type definition
{
readonly __select__: Date | null;
readonly __insert__: Date | string | null | undefined;
readonly __update__: Date | string | null;
};
Nullability and optionality will change according to the column's constraints, generated values, and default data values.
Zod Schema
Types:
{
input?: Date | string | null | undefined;
output?: Date | null | undefined;
}
Nullability and optionality will change according to the column's constraints, generated values, and default data values.
Validations:
- Explicit
undefined
values are rejected. - Input value must be
Date
,string
, ornull
. - Non-null values must be:
- Coercible to a
Date
. - Date must be 4713 BC or later.
- Coercible to a
Example
import { schema, table, timestamp } from "monolayer/pg";
import { zodSchema } from "monolayer/zod";
const dbSchema = schema({
tables: {
example: table({
columns: {
createdAt: timestamp(),
},
}),
},
});
// Kysely database schema type
type DB = typeof dbSchema.infer;
// Zod Schema
const schema = zodSchema(database.tables.example);
See
timestamp without time zone (PostgreSQL Docs)