0

私がやろうとしているのは、生年月日(日付型ではなくnvarchar)の後にデータベース内の人々をソートすることです。ただし、データグリッドビューを埋めるために、生年月日後にソートされます。

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、それが 0 ではなくオフセット 1 から始まることを認識していないことです。

だから、SUBSTRING(data_nasterii,6,4)戻ってき'-yyy'ます。

于 2013-08-28T21:54:59.577 に答える