📅  最后修改于: 2023-12-03 14:40:38.300000             🧑  作者: Mango
在 PostgreSQL 数据库中,日期和时间类型使用 datetime
数据类型进行存储和操作。TypeORM 是一个流行的 ORM(对象关系映射)库,它提供了对 PostgreSQL 数据库的连接和操作的支持。
PostgreSQL 数据库中提供了以下常用的日期和时间类型:
timestamp
- 存储日期和时间,包含年、月、日、小时、分钟和秒。date
- 仅存储日期,不包含时间。time
- 仅存储时间,不包含日期。interval
- 用于表示时间间隔或时间段的类型,可以表示多种时间单位(如天、小时、分钟)之间的差异。在使用 TypeORM 连接 PostgreSQL 数据库时,可以通过定义实体类和字段来使用日期和时间类型。
使用 TypeORM,我们可以创建一个实体类来映射数据库表。在实体类中,我们可以使用 @CreateDateColumn
和 @UpdateDateColumn
装饰器来自动维护实体的创建日期和最后更新日期。
以下示例展示了如何在实体类中使用日期和时间类型:
import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn } from 'typeorm';
@Entity()
class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}
在上面的示例中,@CreateDateColumn
装饰器将自动设置 createdAt
字段为实体的创建日期,@UpdateDateColumn
装饰器将自动更新 updatedAt
字段为实体的最后更新日期。
在查询数据时,可以使用 TypeORM 提供的查询构造器和查询条件来筛选日期和时间数据。
以下示例展示了如何使用 TypeORM 查询创建日期在特定时间范围内的用户:
import { getRepository } from 'typeorm';
const userRepository = getRepository(User);
const startDate = new Date('2022-01-01');
const endDate = new Date();
const users = await userRepository.find({
where: {
createdAt: {
$gte: startDate,
$lte: endDate,
},
},
});
上述示例中,使用 where
条件来筛选创建日期在 startDate
和 endDate
之间的用户。
PostgreSQL 数据库中的日期和时间类型提供了灵活和强大的功能,可用于存储和操作日期和时间数据。TypeORM 是一个方便的 ORM 库,它可以与 PostgreSQL 数据库进行连接和交互,并提供了便捷的方式来处理日期和时间类型的数据。