You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在BigQuery标准SQL中转换DD-mon-YYYY/dd-mon-yy字符串为dd/mm/yyyy日期

嘿,这两个日期转换需求我熟,给你一步步讲清楚!

1. 将DD-mon-YYYY格式的字符串转换为日期类型

核心思路是用对应工具的日期解析函数,匹配准确的格式符就行。拿BigQuery标准SQL举例,直接用PARSE_DATE()函数就能搞定:

  • %d 对应两位数字的日期(比如05、27)
  • %b 对应三位字母的月份缩写(比如Jan、Dec)
  • %Y 对应四位数字的年份(比如2023、1998)

示例代码:

SELECT PARSE_DATE('%d-%b-%Y', '27-Jan-2018') AS converted_date;

执行后会返回2018-01-27这样的标准日期类型,后续可以直接用于日期计算或其他操作。

要是用Python处理的话,用datetime模块也很简单:

from datetime import datetime

date_str = "27-Jan-2018"
date_obj = datetime.strptime(date_str, "%d-%b-%Y")
print(date_obj)  # 输出: 2018-01-27 00:00:00
2. 在BigQuery标准SQL中将dd-mon-yy转成dd/mm/yyyy格式

这里需要分两步:先把字符串解析成日期类型,再格式化成目标格式。用PARSE_DATE()转日期,再用FORMAT_DATE()输出你要的样式。

注意:%y格式符处理两位年份时,BigQuery默认会把00-69映射到2000-2069,70-99映射到1970-1999,刚好匹配你的示例(18会自动转为2018)。

示例代码:

SELECT FORMAT_DATE('%d/%m/%Y', PARSE_DATE('%d-%b-%y', '27-Jan-18')) AS formatted_date;

执行后输入27-Jan-18会返回27/01/2018,输入28-Jan-18则返回28/01/2018,完全符合需求。

如果要批量处理表中的字段,把字符串换成字段名就行:

SELECT 
  original_date_str,
  FORMAT_DATE('%d/%m/%Y', PARSE_DATE('%d-%b-%y', original_date_str)) AS formatted_date
FROM your_table;

内容的提问来源于stack exchange,提问作者sugan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:50:00