SQLDelight 对 PostgreSQL 日期时间字面量的支持增强
在数据库开发中,日期和时间类型的处理一直是关键功能之一。SQLDelight 作为一款强大的 SQL 类型安全生成器,近期在其 PostgreSQL 方言中加强了对 DATE 和 TIME 字面量的支持,这为开发者提供了更完善的类型安全保证。
背景与问题
PostgreSQL 数据库支持使用特定语法直接表示日期和时间值,例如 DATE '2023-05-15'
和 TIME '10:30:45'
。这种字面量表示法在编写 SQL 查询时非常常见且实用。然而,在 SQLDelight 2.0.2 版本中,PostgreSQL 方言对这些标准日期时间字面量的支持存在缺失,导致开发者无法在类型安全的方式下使用这些特性。
解决方案实现
SQLDelight 开发团队通过内部重构解决了这一问题。修复工作主要作为 EXTRACT 函数支持的一部分完成,这使得日期时间字面量能够与 EXTRACT 函数配合使用,例如:
-- 从时间值中提取微秒部分
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');
-- 从日期值中提取ISO年份
SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');
这种实现方式不仅解决了基本的字面量支持问题,还确保了与 PostgreSQL 日期时间函数的良好兼容性。
技术意义
这一改进为开发者带来了以下优势:
-
完整的类型安全:开发者现在可以在保持类型安全的前提下使用 PostgreSQL 原生的日期时间字面量语法。
-
更好的可读性:直接使用标准日期时间字面量使 SQL 查询更加清晰易读。
-
功能完整性:与 EXTRACT 等日期时间函数的结合使用,使得 SQLDelight 对 PostgreSQL 日期时间处理的覆盖更加全面。
-
符合标准:支持标准的 PostgreSQL 语法,降低了从原生 SQL 迁移到 SQLDelight 的学习成本。
实际应用示例
开发者现在可以安全地编写如下查询:
-- 查询特定日期的数据
selectDateLiteral:
SELECT DATE '2023-05-15';
-- 查询特定时间的数据
selectTimeLiteral:
SELECT TIME '10:30:45';
-- 结合EXTRACT函数使用
selectExtractFromTime:
SELECT EXTRACT(HOUR FROM TIME '17:12:28.5');
这些改进使得 SQLDelight 在 PostgreSQL 环境下的日期时间处理能力更加完善,为开发者提供了更强大的工具来处理时间相关的数据查询和操作。
HunyuanImage-3.0
HunyuanImage-3.0 统一多模态理解与生成,基于自回归框架,实现文本生成图像,性能媲美或超越领先闭源模型00ops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。C++043Hunyuan3D-Part
腾讯混元3D-Part00GitCode-文心大模型-智源研究院AI应用开发大赛
GitCode&文心大模型&智源研究院强强联合,发起的AI应用开发大赛;总奖池8W,单人最高可得价值3W奖励。快来参加吧~0287Hunyuan3D-Omni
腾讯混元3D-Omni:3D版ControlNet突破多模态控制,实现高精度3D资产生成00Spark-Chemistry-X1-13B
科大讯飞星火化学-X1-13B (iFLYTEK Spark Chemistry-X1-13B) 是一款专为化学领域优化的大语言模型。它由星火-X1 (Spark-X1) 基础模型微调而来,在化学知识问答、分子性质预测、化学名称转换和科学推理方面展现出强大的能力,同时保持了强大的通用语言理解与生成能力。Python00GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00- HHowToCook程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese only).Dockerfile09
- PpathwayPathway is an open framework for high-throughput and low-latency real-time data processing.Python00
项目优选









