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

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

问题描述:

我试图转换并显示我的日期,例如从2017年6月4日到2017-06-04。这些是我的代码。我该怎么做?使用VBS转换SQL Server的日期格式

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) 
+0

请不要编辑您的问题或标签到您的主题的答案。如果答案为您的问题提供了解决方案:请考虑[接受答案](http://meta.stackoverflow.com/a/5235)。如果您自己想出了解决方案:将其作为您自己的答案发布(并接受它)。 –

试试这个:

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

我是否需要更改代码内的任何内容?我试过了,它不起作用 – duke2704

+0

我可以看到你的VBScript代码 – sForSujit

+0

Erm。这些是我在邮件中的代码。从SQL服务器调出日期后,我只想将它放入一个变量中,并使用YYYY-MM-DD格式显示日期。但我不知道如何 – duke2704

  1. 如果您SAS_DIRECTOR_APPOINTMENT.DATE_OF_APPOINTMENT列是appropriate DATE data type的不是,更改数据库的设计。
  2. 使用info about converting/formatting dates拿出返回正是你想要的输出(暗示“UsingConvertTo_ISO8601” SELECT语句。
  3. 不要期待的功能(EQ Pd())春天到存在只是因为你在你的代码中调用它。
  4. 没有(看到你的编辑之后)是“做正确”和“不知怎么修复它”之间的区别。仔细选择你想上哪一侧。

按照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"