使用 typeORM 搜索早于日期的数据
Searching data older than a Date with typeORM
我正在对 Postgre DB 执行查询以获取早于特定日期的数据。
这是我的函数
async filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: { last_modified: { $lt: '2018-11-15 10:41:30.746877' } },
});
}
以下是我定义文件实体的方式:
export class File {
@PrimaryGeneratedColumn()
id: number;
@Column({ nullable: false })
idFonc: number;
@Column({ nullable: false })
version: number;
@Column('varchar', { length: 100, nullable: false })
filename: string;
@Column({ nullable: true })
last_modified: Date;
@Column({ nullable: false })
device: boolean;
@ManyToOne(type => Type, { nullable: false })
@JoinColumn({ referencedColumnName: 'id' })
type: Type;
@OneToMany(type => FileDevice, filedevice => filedevice.file)
fileDevice: FileDevice[];
}
我收到这个错误
QueryFailedError: invalid input syntax for type timestamp: "{"$lt":"2018-11-15 10:41:30.746877"}"
您可以使用 More Than,doc
async filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: {
last_modified: MoreThan('2018-11-15 10:41:30.746877') },
});}
您也可以使用 createQueryBuilder
执行此操作,如下所示:
public async filesListToDelete(): Promise<any> {
let record = await this.fileRepository.createQueryBuilder('file')
.where('file.last_modified > :start_at', { start_at: '2018-11-15 10:41:30.746877' })
.getMany();
return record
}
其中任何一个都将获取 OLDER
数据
内置 TypeORM
运算符 (docs)
async filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: { last_modified: LessThan('2018-11-15 10:41:30.746877') },
});
}
与 PostgreSQL
运算符 (docs)
public async filesListToDelete(): Promise<any> {
let record = await this.fileRepository.createQueryBuilder('file')
.where('file.last_modified < :start_at', { start_at: '2018-11-15 10:41:30.746877' })
.getMany();
return record
}
我正在对 Postgre DB 执行查询以获取早于特定日期的数据。
这是我的函数
async filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: { last_modified: { $lt: '2018-11-15 10:41:30.746877' } },
});
}
以下是我定义文件实体的方式:
export class File {
@PrimaryGeneratedColumn()
id: number;
@Column({ nullable: false })
idFonc: number;
@Column({ nullable: false })
version: number;
@Column('varchar', { length: 100, nullable: false })
filename: string;
@Column({ nullable: true })
last_modified: Date;
@Column({ nullable: false })
device: boolean;
@ManyToOne(type => Type, { nullable: false })
@JoinColumn({ referencedColumnName: 'id' })
type: Type;
@OneToMany(type => FileDevice, filedevice => filedevice.file)
fileDevice: FileDevice[];
}
我收到这个错误
QueryFailedError: invalid input syntax for type timestamp: "{"$lt":"2018-11-15 10:41:30.746877"}"
您可以使用 More Than,doc
async filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: {
last_modified: MoreThan('2018-11-15 10:41:30.746877') },
});}
您也可以使用 createQueryBuilder
执行此操作,如下所示:
public async filesListToDelete(): Promise<any> {
let record = await this.fileRepository.createQueryBuilder('file')
.where('file.last_modified > :start_at', { start_at: '2018-11-15 10:41:30.746877' })
.getMany();
return record
}
其中任何一个都将获取 OLDER
数据
内置 TypeORM
运算符 (docs)
async filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: { last_modified: LessThan('2018-11-15 10:41:30.746877') },
});
}
与 PostgreSQL
运算符 (docs)
public async filesListToDelete(): Promise<any> {
let record = await this.fileRepository.createQueryBuilder('file')
.where('file.last_modified < :start_at', { start_at: '2018-11-15 10:41:30.746877' })
.getMany();
return record
}