如何通过moor select api将sqllite日期时间转换为本地时间



我正在使用flutter和moor作为数据库库构建一个移动应用程序。我必须提取特定月份的所有交易。我的查询如下。

Future<List<Transaction>> fetchTransactionsByCategory(
String name, DateTime reportDate) {
return (select(transactions)
..where((i) {
final date = i.date;
return date.year.equals(reportDate.year) &
date.month.equals(reportDate.month) &
i.subCategory.equals(name);
}))
.get();

}

问题是,如果交易时间为2021年5月1日凌晨12:00:00,则不在5月报告中,而是在4月报告中。我能够理解,在数据库中,它将持续到2021年4月30日下午16:00:00(此处为时区+8(。

我必须如何编写查询以获取基于本地时区的事务?有什么建议吗?

在您的pubspecintl: ^0.16.1中并导入

import 'package:intl/intl.dart';

处于最高状态(第一状态(。

然后你可以像这样使用它;

@override
void initState() {
super.initState();
initializeDateFormatting();
}

最新更新