Typeorm `find` Метод, который не соответствует записям в даты из -за трансформатора датыMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Typeorm `find` Метод, который не соответствует записям в даты из -за трансформатора даты

Сообщение Anonymous »

У меня есть объект Typeorm, называемая MyEntity , хранящийся в базе данных MySQL. У объекта есть начальные и конечные столбцы, определенные следующим образом: < /p>

Код: Выделить всё

@Column({nullable: true, type: 'date', transformer: new DateTransformer()})
start: Date | string;

@Column({nullable: true, type: 'date', transformer: new DateTransformer()})
end: Date | string;
DateTransformer реализован как SO:

Код: Выделить всё

export class DateTransformer implements ValueTransformer {

constructor(nullable: boolean = true) {
this.nullable = nullable;
}

protected nullable: boolean;

to(value: Date | string): string {
return value ? moment.utc(value).format('YYYY-MM-DD') : this.nullable ? null : moment.utc().format('YYYY-MM-DD');
}

from(value: string): string {
return value ? moment.utc(value).tz('Europe/London').format('YYYY-MM-DD') : null;
}

}
Я пытаюсь извлечь некоторые записи из базы данных с методом находки Typemor следующим образом:

Код: Выделить всё

MyEntity.find({
where: {
start: LessThanOrEqual(today),
end: Or(MoreThanOrEqual(today), IsNull())
}
});
здесь сегодня -это строка, равная "2025-06-13". Вышеуказанный дает пустой массив. Однако, когда я запускаю эквивалентный запрос SQL (см. Ниже), я получаю некоторые записи. < /P>

Код: Выделить всё

SELECT *
FROM my_entity
WHERE start = '2025-06-13' OR end IS NULL);
Если я отказался от трансформатора из определений столбцов, методы Find также получают записи, как и ожидалось. Я также могу получить записи с помощью строителя запросов, но это, вероятно, потому, что он неявно пропускает трансформаторы. 2025-04-07 и 2026-04-06.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ate-transf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «MySql»