我将向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"}"
答案 0 :(得分:6)
还可以使用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
}
答案 1 :(得分:0)
您可以使用doc
MoreThanasync filesListToDelete(): Promise<any> {
return await this.fileRepository.find({
where: {
last_modified: MoreThan:('2018-11-15 10:41:30.746877') },
});}
答案 2 :(得分:0)
其中任何一个都将获取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
}