AM/PM 另存为 ??没有 SQL N 前缀

AM/PM are saved as ?? without SQL N prefix

当数据不是英文时,我通常使用 N 前缀将数据插入 sql 服务器 table 但是当我想将当前时间保存为 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输出的不是英文字符串吗?

我不明白为什么你需要将 AM/PM 存储为 STRING,你所需要的只是选择适合你的 DataType [=15] =].

存储一些数据后,就很简单了:)

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' 前缀感到困惑,何时以及为何我们应该使用它,这里是 Good answer about that prefix

我在 IIS 管理器中发现 ASP 的区域设置未设置,因此时间是用波斯语生成的,例如 12:00 ق.ظ 而不是 12:00 AM。我做了两件事,但不确定它们是否都是强制性的:

  1. IIS 管理器 > 选择服务器 > ASP > 区域设置 ID:1033(美国英语代码)
  2. 使用 this instruction
  3. 将主数据库的语言环境从阿拉伯语更改为拉丁语