AM / PM сохраняются как ??без префикса SQL N - PullRequest
0 голосов
/ 23 мая 2018

Я обычно использую префикс N при вставке данных в таблицу сервера sql, когда данные не на английском, однако, когда я хочу сохранить текущее время, AM или PM сохраняются как ??, когда я не использую N prefix.

Вот как я могу сэкономить время в базе данных здесь mtime nvarchar(50):

<%
t=time
sql=insert into notes (body,mtime) values (N'" & body &"','"& t &"')"
Con.execute sql
%>

зачем мне нужен префикс N для экономии времени?не выводится asp time, строка в английских символах?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

В диспетчере IIS я обнаружил, что языковой стандарт ASP не задан, и поэтому время генерировалось на языке фарси, например, 12:00, а не 12:00.Я сделал две вещи и не уверен, что оба они были обязательными:

  1. Диспетчер IIS> Выберите сервер> ASP> Идентификатор языкового стандарта: 1033 (код для английского языка США)
  2. Изменение языкового стандартаОсновная база данных с арабского на латынь с использованием этой инструкции
0 голосов
/ 23 мая 2018

Я не понимаю, почему вам нужно хранить AM/PM как STRING, все, что вам нужно, это выбрать правильный DataType, который в вашем случае TIME.

После того, как вы сохраните некоторые данные, все будет просто:)

CREATE TABLE Test(
    MyTime TIME
    );

INSERT INTO Test VALUES
('08:00:00'),
('13:00:00');

SELECT CONVERT(VARCHAR(15), MyTime,100) AS TheTimeIs
FROM Test;

Результаты:

+-----------+
| TheTimeIs |
+-----------+
| 8:00AM    |
| 1:00PM    |
+-----------+

Помимо этого, кажется, что вы тоже путаетесь с N' префикс, когда и почему мы должны его использовать, вот Хороший ответ об этом префиксе .

...