大家好,
我正在尝试将SQL表中今天的结果筛选到powerapps中的集合中。列";dt";表示日期时间类型的sql中的列。
这是我的powerapps过滤器:
ClearCollect(myCollectionName, Filter(myDatasource, Text(dt,"dd/mm/yyyy") = Text(Now(),"dd/mm/yyyy" )));
即使sql中有今天的数据,该集合似乎仍然是空的。我可以知道我的过滤方法是否正确吗?
简单回答:数据可能会根据客户端时区进行更改。要修复它,您可以通过将时区偏移量应用于SQL表中的数据来更新它,大致如下:
ClearCollect(
myCollectionName,
Filter(
myDatasource,
Text(DateAdd(dt, TimeZoneOffset(dt), Minutes), "dd/mm/yyyy") =
Text(Now(), "dd/mm/yyyy")))
长(er(答案:SQL Server中的datetime类型表示日期和时间的绝对值。例如,值"2021-12-23 09:30:00"表示2021年12月23日上午9:30——在世界任何地方。然而,Power Apps中的日期/时间类型表示一个时间点,通常指的是执行(或创建(应用程序的本地时间。例如,如果我选择了该值,并且我在美国太平洋时区(UTC-08:00(,则该值与伦敦(UTC+00:00(的某个人选择2021-12-23 17:30:00时的值相同。由于这两种类型代表不同的概念,我们可能会像您所面临的那样出现不匹配。要解决此问题,我们可以在SQL Server中使用与Power Apps具有相同语义的类型(例如"datetimeoffset"(,也可以调整在SQL和Power Apps之间传输的时间。
上的博客文章https://powerapps.microsoft.com/en-us/blog/working-with-datetime-values-in-sql更详细地解释了如何在SQL和Power Apps中使用日期/时间值。