使用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)
答
- 如果您
SAS_DIRECTOR_APPOINTMENT.DATE_OF_APPOINTMENT
列是appropriate DATE data type的不是,更改数据库的设计。 - 使用info about converting/formatting dates拿出返回正是你想要的输出(暗示“UsingConvertTo_ISO8601” SELECT语句。
- 不要期待的功能(EQ
Pd()
)春天到存在只是因为你在你的代码中调用它。 - 没有(看到你的编辑之后)是“做正确”和“不知怎么修复它”之间的区别。仔细选择你想上哪一侧。
答
按照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"
请不要编辑您的问题或标签到您的主题的答案。如果答案为您的问题提供了解决方案:请考虑[接受答案](http://meta.stackoverflow.com/a/5235)。如果您自己想出了解决方案:将其作为您自己的答案发布(并接受它)。 –