Preferred TypeScript type for TypeORM Entity with a Postgres timestamptz field
15:59 15 Jan 2026

Question

What are the consequences of using string for a timestamptz column instead of the recommended Date typing?

Context

We are using TypeScript + Nest.js + TypeORM + PostgreSQL and want to be consistent with our Entity Date column typing for capturing datetimes. Our API layer always sends/receives such date fields as ISO UTC Strings (e.g. 2026-01-26T12:00:00Z).

Most articles (and AI responses) are telling me I need to prefer Date types to avoid issues with the way PostgreSQL formats the dates. For example:

// Date used at data layer
class Entity {
  @Column({ type: 'timestamptz' })
  dateField: Date; 
}

// String used at API layer
class Dto {
  dateField: string;
}

// Mappings required for each
function entityToDto(entity: Entity): Dto {
  return { dateField: entity.dateField.toISOString() }
}

function dtoToEntity(dto: Dto): Entity {
  return { dateField: new Date(dto.dateField) }
}

What I'm wondering is why all this is necessary (if it is) when it seems that it can be done as simply as:

// TypeORM accepts/returns strings, handles mapping to postgres
class Entity {
  @Column({ type: 'timestamptz' })
  dateField: string; 
}

// Use custom decorator at API Layer to validate ISO UTC criteria
class Dto {
  @IsISODateTime()
  dateField: string; 
}

We have columns in our data model that use both approaches (ugh, I know) so I know both technically work and I haven't seen any differences, but I wanted to see if anyone with more knowledge could weigh in on this decision.

typescript postgresql date nestjs typeorm