0

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

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)

但这根本不对事情进行排序。我究竟做错了什么?

4

1 回答 1

1

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

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

所以,SUBSTRING(data_nasterii,6,4)正在回归'-yyy'

于 2013-08-28T21:54:59.577 回答