【问题标题】:Converting date format of SQL Server with VBS用 VBS 转换 SQL Server 的日期格式
【发布时间】:2017-08-28 17:22:02
【问题描述】:

我正在尝试转换并显示我的日期,例如从 2017 年 6 月 4 日到 2017 年 6 月 4 日。这些是我的代码。我该怎么做?

Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
conn.Open "Provider=SQLOLEDB.1;Data Source=PC01\SQLEXPRESS;Initial Catalog=TEST","admin","admin"

sql = "select SAS_DIRECTOR_APPOINTMENT.DATE_OF_APPOINTMENT from SAS_DIRECTOR_APPOINTMENT where  SAS_DIRECTOR_APPOINTMENT.WIP_GUID='0000000003'"
rs.Open sql,conn

MsgBox rs.Fields(0)

【问题讨论】:

  • 请不要将答案编辑到您的问题中或将标签编辑到您的主题中。如果答案为您的问题提供了解决方案:请考虑 accepting the answer。如果您自己提出了解决方案:将其发布为您自己的答案(并接受它)。

标签: sql sql-server vbscript


【解决方案1】:
  1. 如果您的 SAS_DIRECTOR_APPOINTMENT.DATE_OF_APPOINTMENT 列不属于 appropriate DATE data type,请更改数据库的设计。
  2. 使用 info about converting/formatting dates 生成一个 SELECT 语句,该语句准确返回您想要输出的内容(提示“UsingConvertTo_ISO8601”。
  3. 永远不要期望函数(例如 Pd())会因为您在代码中调用它而迅速出现。
  4. (看到您的编辑后)“做对了”和“以某种方式修复它”是有区别的。仔细选择你想站在哪一边。

【讨论】:

    【解决方案2】:

    试试这个:

    <![CDATA[<% 
        response.write YEAR(Date()) & _ 
            "-" & Pd(Month(date()),2) & _ 
            "-" & Pd(DAY(date()),2) 
    %>]]>
    

    【讨论】:

    • 我需要更改代码中的任何内容吗?我试过了,还是不行
    • 呃。这些是我在帖子中的代码。从 SQL Server 调出日期后,我只想将其放入变量中并使用 YYYY-MM-DD 格式显示日期。但我不知道如何
    【解决方案3】:

    根据 OP,问题已通过使用 CONVERT() 函数和 undocumented argument 23 解决。

    sql = "declare @datetemp as date;" & _
          "set @datetemp = (select SAS_DIRECTOR_APPOINTMENT.DATE_OF_APPOINTMENT from SAS_DIRECTOR_APPOINTMENT where SAS_DIRECTOR_APPOINTMENT.WIP_GUID='0000000003');" & _
          "SELECT CONVERT(NVARCHAR(10), @datetemp, 23), 23"
    

    【讨论】:

      猜你喜欢
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多