我正在尝试将DateTime
runtimetype值转换为Expression<DateTime, DateTimeType>
。我已经尝试了将近三天。我尝试了不同的方法,但没有奏效。
之所以要实现此目的,是因为moor_flutter库在某些情况下会使用并接受该库的方法上的自定义 runtimetypes
以及这些方法上的参数值。
下面是示例代码;
final DateTime dateToday = new DateTime.now(); // convert DateTime to Expression<DateTime, DateTimeType>
var dateWithNewRuntimetype; // assign the converted value to this variable
我以为我通过将
as as Expression<DateTime, DateTimeType>
添加到dateWithNewRuntimetype
变量value的值来解决了此问题,但是这也不是解决方案。该解决方案适用于以下代码
Stream<List> getLoansWithTomorrowDueDate(int dayInFuture) {
return (select(loans)
..where((l) => l.due_date.isBetween(
dateToday, // it should be Expression<DateTime, DateTimeType> not DateTIme
futureDate, // it should be Expression<DateTime, DateTimeType> not DateTIme)))
.watch();
}
如果您希望我提供更多有关此的信息,我会提供。
谢谢你,真是太爱了。
最佳答案
将isBetween
与SqlType
进行比较。
您必须使用isBetweenValues
。
/// Defines extension functions to express comparisons in sql
extension ComparableExpr<DT, ST extends ComparableType<DT>>
on Expression<DT, ST> {
Expression<bool, BoolType> isBetween(
Expression<DT, ST> lower, Expression<DT, ST> higher,
{bool not = false});
Expression<bool, BoolType> isBetweenValues(DT lower, DT higher,
{bool not = false});
}
关于datetime - 在flutter应用程序中将日期时间转换为其他运行时类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60462648/