偏移量从几开始mysql_.net – MySQL时间偏移量(范围内的范围)

我有一个高级搜索功能,可以根据日期和时间查询记录.时间.我想在日期时间范围之间返回所有记录,然后从该范围内返回我想要将结果缩小到几小时范围(例如2012年5月1日 – 2012年5月7日,并显示从下午2点到晚上7点的记录).

我所做的是在数据库中添加一个时间字段,然后使用AND语句查看时间字段.这工作正常,直到我开始将日期时间和时间字段缩短了几个小时,以便根据不同的时区进行调整.这个问题是当时间字段被偏移时,假设6小时有效时间查询,如< = 2pm< = 7pm结束,< = 8pm< = 1am,这将返回零结果. 有一个更好的方法吗? 查询:

SELECT Id, Item,

LEFT(DAYNAME(Date - INTERVAL 0 HOUR),3) as DayofWk,

CONCAT('$',FORMAT(Sale,2)) AS Sale,

CONCAT('$',FORMAT(Retail,2)) AS Retail,

Date, Time, Winner

FROM masterdata2

WHERE Item LIKE '%xbox%'

AND Date BETWEEN CONCAT('2010-6-28', ' ', '00:00:00') + INTERVAL 0 HOUR

AND CONCAT ('2012-7-9',' ','23:59:00') + INTERVAL 0 HOUR

AND time BETWEEN CONCAT ('2010-6-28',' ','00:00:00') + INTERVAL 0 HOUR

AND CONCAT ('2012-7-9',' ','23:59:00') + INTERVAL 0 HOUR

AND ( Dayofwk != 'Mon' || Dayofwk != 'Tue' || Dayofwk != 'Wed' || Dayofwk != 'Thu' || Dayofwk != 'Fri' || Dayofwk != 'Sat' || Dayofwk != 'Sun' )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Flink 中,可以使用 FlinkKafkaConsumer 消费 Kafka 数据,并且可以通过设置 KafkaConsumer 的属性来控制偏移量的提交。而将偏移量保存到 MySQL 中,则需要借助 Flink 提供的 StateBackend 和 Checkpointing 机制。 以下是一个简单的示例代码,演示了如何将 Kafka 数据消费后的偏移量保存到 MySQL 数据库: ```java public class FlinkKafkaConsumerExample { public static void main(String[] args) throws Exception { // 设置执行环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // 设置 StateBackend env.setStateBackend(new FsStateBackend("file:///path/to/checkpoint")); // 开启 Checkpointing env.enableCheckpointing(10000L, CheckpointingMode.EXACTLY_ONCE); // 创建 FlinkKafkaConsumer Properties properties = new Properties(); properties.setProperty("bootstrap.servers", "localhost:9092"); properties.setProperty("group.id", "flink-consumer-group"); FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>("my-topic", new SimpleStringSchema(), properties); // 设置 KafkaConsumer 的属性 consumer.setStartFromEarliest(); consumer.setCommitOffsetsOnCheckpoints(true); // 创建数据流并处理数据 DataStream<String> stream = env.addSource(consumer); stream.print(); // 将偏移量保存到 MySQL 中 stream.getCheckpointedStream() .map(new MapFunction<String, String>() { private static final long serialVersionUID = 1L; @Override public String map(String value) throws Exception { // 在这里将偏移量保存到 MySQL 中 return value; } }); // 执行程序 env.execute("FlinkKafkaConsumerExample"); } } ``` 其中,`FsStateBackend` 用于设置 StateBackend,`enableCheckpointing` 开启了 Checkpointing,`setStartFromEarliest` 设置消费者从最早的消息开始消费,`setCommitOffsetsOnCheckpoints` 设置消费者在 Checkpointing 时提交偏移量。在 `map` 函数中,可以将偏移量保存到 MySQL 数据库中。 需要注意的是,在使用 StateBackend 和 Checkpointing 机制时,需要设置合适的 Checkpointing 间隔和容忍的失败次数,以确保数据的一致性和可靠性。同时,还需要考虑数据的并发性和线程安全性等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值