📜  datetime postgres typeorm - SQL (1)

📅  最后修改于: 2023-12-03 14:40:38.300000             🧑  作者: Mango

PostgreSQL 数据库中的日期和时间类型

在 PostgreSQL 数据库中,日期和时间类型使用 datetime 数据类型进行存储和操作。TypeORM 是一个流行的 ORM(对象关系映射)库,它提供了对 PostgreSQL 数据库的连接和操作的支持。

常用的日期和时间类型

PostgreSQL 数据库中提供了以下常用的日期和时间类型:

  1. timestamp - 存储日期和时间,包含年、月、日、小时、分钟和秒。
  2. date - 仅存储日期,不包含时间。
  3. time - 仅存储时间,不包含日期。
  4. interval - 用于表示时间间隔或时间段的类型,可以表示多种时间单位(如天、小时、分钟)之间的差异。
在 TypeORM 中使用日期和时间类型

在使用 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 条件来筛选创建日期在 startDateendDate 之间的用户。

总结

PostgreSQL 数据库中的日期和时间类型提供了灵活和强大的功能,可用于存储和操作日期和时间数据。TypeORM 是一个方便的 ORM 库,它可以与 PostgreSQL 数据库进行连接和交互,并提供了便捷的方式来处理日期和时间类型的数据。