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

SQL中如何从数据库datetime字段提取日期的日部分

提取日期中的日部分

根据你使用的数据库类型,可通过以下方式实现:

MySQL/MariaDB

  • 若SENT_TIME是日期类型,直接用DAY()函数提取:
SELECT DAY(SENT_TIME) AS DAY_PART
FROM APP_STATUS_WEBSERVICE 
WHERE APP_ID_EFAS = 809371;
  • 若SENT_TIME是字符串类型(如存储为'2022年10月22日'),用字符串截取:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SENT_TIME, '月', -1), '日', 1) AS DAY_PART
FROM APP_STATUS_WEBSERVICE 
WHERE APP_ID_EFAS = 809371;

Oracle

  • 日期类型用EXTRACT()函数:
SELECT EXTRACT(DAY FROM SENT_TIME) AS DAY_PART
FROM APP_STATUS_WEBSERVICE 
WHERE APP_ID_EFAS = 809371;
  • 字符串类型用SUBSTR结合INSTR定位截取:
SELECT SUBSTR(SENT_TIME, INSTR(SENT_TIME, '月') + 1, INSTR(SENT_TIME, '日') - INSTR(SENT_TIME, '月') - 1) AS DAY_PART
FROM APP_STATUS_WEBSERVICE 
WHERE APP_ID_EFAS = 809371;

SQL Server

  • 日期类型用DAY()或DATEPART():
SELECT DAY(SENT_TIME) AS DAY_PART
-- 或 DATEPART(DAY, SENT_TIME) AS DAY_PART
FROM APP_STATUS_WEBSERVICE 
WHERE APP_ID_EFAS = 809371;
  • 字符串类型用SUBSTRING和CHARINDEX:
SELECT SUBSTRING(SENT_TIME, CHARINDEX('月', SENT_TIME) + 1, CHARINDEX('日', SENT_TIME) - CHARINDEX('月', SENT_TIME) - 1) AS DAY_PART
FROM APP_STATUS_WEBSERVICE 
WHERE APP_ID_EFAS = 809371;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 20:55:21