数据库数据分割处理

数据库中字段A的数据内容都为 225100,02,3,20160725的样式,其中20160715为日期,如何将字段A按逗号分成四个字段,并将20160725日期转换为日期的数据类型(这个日期要在where条件里用作时间范围的筛选)

FineReport Gun鹏 发布于 2024-3-4 10:32 (编辑于 2024-3-4 10:35)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-3-4 10:32

什么数据库

在帆软,直接就是

split()函数就可以

  • Gun鹏 Gun鹏(提问者) sqlite数据库和sqlserver数据库
    2024-03-04 10:34 
  • Gun鹏 Gun鹏(提问者) 这个日期要在where条件里用作时间范围的筛选
    2024-03-04 10:34 
  • snrtuemc snrtuemc 回复 Gun鹏(提问者) sqlite参考https://blog.csdn.net/xc_zhou/article/details/104229016,sql server参考https://blog.51cto.com/u_16213420/9358845
    2024-03-04 10:37 
  • Gun鹏 Gun鹏(提问者) 回复 snrtuemc 如何将分割后的20160715转换为日期数据类型啊,比如2016-07-15
    2024-03-04 10:43 
  • snrtuemc snrtuemc 回复 Gun鹏(提问者) 同样用substr分割后,在加-拼接你要的格式
    2024-03-04 10:45 
最佳回答
0
JL98Lv6中级互助
发布于2024-3-4 10:54

SQLserver数据库

SELECT

    value1,

    value2,

    value3,

    CONVERT(DATE, value4, 112) AS ConvertedDate

FROM

    YourTableName

CROSS APPLY

    STRING_SPLIT(A, ',')

    WITH (

        value1 NVARCHAR(MAX),

        value2 NVARCHAR(MAX),

        value3 NVARCHAR(MAX),

        value4 NVARCHAR(MAX)

    )

WHERE

    CONVERT(DATE, value4, 112) BETWEEN '20230101' AND '20231231'  -- 这里设置您的时间范围

YourTableName应替换为您的实际表名。

A是包含您描述的数据的字段名。

STRING_SPLIT函数用于按逗号分隔字段A的值,并使用WITH子句指定返回的列名。

CONVERT(DATE, value4, 112)用于将日期字符串转换为日期数据类型。112是日期格式YYYYMMDD的样式代码。

在WHERE子句中,您可以设置所需的日期范围来筛选记录。

  • 3关注人数
  • 246浏览人数
  • 最后回答于:2024-3-4 10:54
    请选择关闭问题的原因
    确定 取消
    返回顶部