使用VBS转换SQL Server的日期格式

时间:2017-08-25 06:51:10

标签: sql sql-server vbscript

我试图转换并显示我的日期,就像从2017年6月4日到2017-06-04。这些是我的代码。我该怎么做?

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)

3 个答案:

答案 0 :(得分:1)

  1. 如果您的SAS_DIRECTOR_APPOINTMENT.DATE_OF_APPOINTMENT列不属于appropriate DATE data type,请更改数据库的设计。
  2. 使用info about converting/formatting dates提供一个SELECT语句,该语句准确返回您想要输出的内容(提示" UsingConvertTo_ISO8601"。
  3. 永远不要指望一个函数(e.q。Pd())只是因为你在你的代码中调用它而存在。
  4. (看到你的编辑后)"做对了"和"以某种方式修复它"。仔细选择您想要在哪一侧。

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

根据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"