如何在sql中解析字符串,以便根据年龄对人员进行排序
本文关键字:排序 sql 字符串 | 更新日期: 2023-09-27 18:29:35
我想做的是:在出生日期后对数据库中的人进行排序(nvarchar,而不是日期类型)日期采用以下字符串格式:dd-MM-yyyy,通过排序,我的意思是返回所有人的列表,但在出生日期之后排序,以填充数据网格视图。
data_nasterii=出生日期
我试过的是:
SELECT
[id], [specie], [sex], [data_nasterii], [greutate],
SUBSTRING(data_nasterii,6,4) AS [an],
SUBSTRING(data_nasterii,3,2) AS [luna],
SUBSTRING(data_nasterii,0,2) AS [zi]
FROM
[animal]
WHERE
specie=@p1
ORDER BY
SUBSTRING(data_nasterii,6,4),
SUBSTRING(data_nasterii,3,2),
SUBSTRING(data_nasterii,0,2)
但这一点都不正确。我做错了什么?
首先,您"做错了"的是将日期值存储为字符串,而不是DATE
数据类型。
其次,您做错的是没有认识到SUBSTRING
从偏移量1开始,而不是0。
因此,SUBSTRING(data_nasterii,6,4)
正在返回'-yyy'
。