我如何解析sql中的字符串,以便根据年龄对人进行排序?

时间:2013-08-28 21:41:09

标签: c# sql sql-server database

我想要做的是:在出生日期之后对数据库中的人进行排序(nvarchar,而不是日期类型)日期是这种字符串格式:dd-MM-yyyy和Sort,我的意思是返回一个列表人们,但在出生日期之后排序,填写数据网格。

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)

但这并不能解决问题。我做错了什么?

1 个答案:

答案 0 :(得分:1)

首先,你“做错了”是将日期值存储为字符串,而不是DATE数据类型。

其次,你所做错的是没有认识到SUBSTRING从偏移1开始,而不是0。

因此,SUBSTRING(data_nasterii,6,4)正在返回'-yyy'