Пытаюсь заказать DD-MM с sqlite3 - PullRequest
0 голосов
/ 27 ноября 2018

У меня дни рождения хранятся как DD-MM, я не думал о сортировке их, но теперь я все равно пытаюсь их отсортировать, можно ли это сделать?Я пытался:

const bdays = db.prepare('SELECT id, server, substr(datum, 1, 2) || "-" || substr(datum, 4, 5) as date FROM birthdays WHERE server = ? ORDER BY date').all(message.guild.id);
let people = '';
for (const data of bdays) {
    people += `**${client.users.get(data.id).username}** - ${data.datum}\n`;
    message.channel.send(data.datum);
}

Но это дает мне SqliteError: near "substr": syntax error

1 Ответ

0 голосов
/ 27 ноября 2018

Поскольку SQLite не поддерживает функцию to_date.

Вы можете попробовать использовать substr и несколько order by

Схема (SQLite v3.18)

CREATE TABLE T(
    col VARCHAR(50)
);

INSERT INTO T VALUES ('02-28');
INSERT INTO T VALUES ('03-05');
INSERT INTO T VALUES ('01-01');

Запрос № 1

SELECT  col,substr(col,1,2),substr(col,4,2)
FROM T
ORDER BY substr(col,1,2),substr(col,4,2);

| col   | substr(col,1,2) | substr(col,4,2) |
| ----- | --------------- | --------------- |
| 01-01 | 01              | 01              |
| 02-28 | 02              | 28              |
| 03-05 | 03              | 05              |

Просмотр на БД Fiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...