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

SQL Server中Convert函数(字符串转日期)使用方法咨询

如何用SQL Server的CONVERT函数将月份+年份字符串转成日期

嘿,刚接触SQL的话,确实会对CONVERT函数的各种参数有点摸不着头脑,不过别担心,我来一步步帮你搞定这个转换问题!

核心思路

你的日历表中cal_month是英文月份全称(比如January),cal_year是字符串格式的年份(比如2018),我们需要先把这两个字段拼接成一个SQL Server能识别的日期字符串,再用CONVERT转成DATE类型。

具体实现代码

首先,我们可以把月份、一个固定的日期(比如每月1号)和年份拼接成类似'January 1, 2018'的格式,然后用CONVERT转换:

SELECT
    cal_month,
    cal_year,
    -- 拼接成日期字符串后转换为DATE类型
    CONVERT(DATE, cal_month + ' 1, ' + cal_year, 109) AS converted_date,
    Toronto,
    Montreal,
    National_Avg
FROM
    你的日历表名称; -- 记得替换成你实际的表名

参数解释

这里的109是CONVERT函数的style参数,它对应的格式是mon dd yyyy hh:mi:ss:mmmAM(或PM),刚好能识别英文月份全称,完美匹配你的数据格式。

容错小技巧

如果你的数据里存在一些不规范的月份拼写或者年份格式(虽然从Datameer导入的应该比较规范),可以用TRY_CONVERT代替CONVERT,这样转换失败时不会直接报错,而是返回NULL,方便你排查问题:

SELECT
    cal_month,
    cal_year,
    TRY_CONVERT(DATE, cal_month + ' 1, ' + cal_year, 109) AS converted_date,
    Toronto,
    Montreal,
    National_Avg
FROM
    你的日历表名称;

补充说明

因为你只有月份和年份信息,转换后的日期会默认是每个月的第一天(比如2018-01-01),这是处理这类数据的常规做法,如果你需要其他日期逻辑,可以调整拼接的日期部分(比如改成' 15, '得到每月15号)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:17:45