Measure Zero

Measure Zero

马上订阅 Measure Zero RSS 更新: https://shiina18.github.io/atom.xml

难倒各路大模型的两道简单 SQLite 问题

2025年5月5日 08:00

问题描述以及示例 prompt 如下


你是 SQLite 专家, 请完成下面两个问题.

  1. 用 SQLite 写一个 query, 根据 “now” 获得当地时间今日零点的 unix 时间戳. 注: “当地” 指执行 SQL 的机器的系统时区, “今日” 指当地日期的今日.

例: 若 now 为 ‘2025-05-05 04:00:00+08:00’, 则返回 ‘2025-05-05 00:00:00+08:00’. (假设当地时区为 UTC+8)

  1. 用 SQLite 写一个 query, 根据 “now” 获得上周的周一的日期. 假设周一为一周的开始, 全程只在 UTC 时间考虑问题 (不用考虑时区).

例: 若 now 为 ‘2025-05-05’ 周一, 则返回 ‘2025-04-28’. 若 now 为 ‘2025-05-04’ 周日, 则返回 ‘2025-04-21’.

参考代码如下, 请填充对应的 SQL.

import sqlite3
import time


def f(sql):
    conn = sqlite3.connect(':memory:')
    cursor = conn.cursor()
    cursor.execute(sql)
    result = cursor.fetchone()[0]
    if isinstance(result, int):
        print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(result)))
    elif isinstance(result, str):
        print(result)
    conn.close()


# now 替换成了具体时间戳
sqls = [
    # 当地今日零点
    "SELECT unixepoch('2025-05-05 04:00:00+08:00', ...)",
    
    # 上周周一
    "SELECT DATE('2025-05-05', ...)",
    "SELECT DATE('2025-05-04', ...)",
]
for sql in sqls:
    f(sql)

在看答案之前可以自己尝试做一做.

问了一圈 LLM, 4o 无联网非推理模式能完全做对 (一定概率做对, 推理反而做不对). DeepSeek-R1 能做对 (一定概率). 其他大多数 LLM 包括 Gemini 2.5 Pro 也没全对.

参考答案

这里 的 4o 回答.

以下是完整的 SQL 填空答案,分别对应两个问题。

剩余内容已隐藏

查看完整文章以阅读更多