datetime - 在flutter应用程序中将日期时间转换为其他运行时类型

标签 datetime flutter dart custom-data-type flutter-moor

我正在尝试将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();
  }

如果您希望我提供更多有关此的信息,我会提供。

谢谢你,真是太爱了。

最佳答案

isBetweenSqlType进行比较。
您必须使用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/

相关文章:

C# 使用 RegEx 分解 DateTime

javascript - 使用破折号而不是斜杠将日期字符串转换为日期对象会产生不一致的结果

mysql - 查询 MySQL 日期时间字段中 11 个月前的任何记录

java - 如何识别日期时间格式?

flutter - Flutter 中 iOS 下拉小部件的名称是什么?

dart - 如何在 Dart 中检查 Stream 的结尾?

达特语 : How to convert int from network to host order (and vice versa)

flutter - Flutter项目中pubspec.lock文件有什么用

flutter - 如何使 IconButton 的突出显示颜色出现在父小部件上?

flutter - 找不到参数的方法 id() [com.google.gms.google-services]