1

我有一个名为typeVALUE的字段VARCHAR2

字符串采用这种格式:yyyy-mm-dd 是否可以将其更改为:dd-mm-yyyy

然后(如果可能,再次)以这种格式将其转换为日期?

我尝试过的是:

SELECT convert(varchar, getdate(), 110)

但这仅适用于当前时间。有没有办法做到这一点?

编辑:这里我的代码是:

select
p1.VALUE as Sdate
from Process p 
LEFT JOIN PARAMETER p1 on p1.WP_ID=p.ID AND p1.NAME = 'Sdate'
WHERE p.TYPE = 'Marketing' and convert(varchar, convert(date,p1.value), 103) ='22.08.2012'
4

2 回答 2

3

104将转换为dd.mm.yyyy格式

SELECT CONVERT(VARCHAR, GETDATE(), 104)

您的查询应该是:

SELECT p1.VALUE AS Sdate
FROM Process p 
LEFT JOIN PARAMETER p1 
       ON p1.WP_ID = p.ID 
      AND p1.NAME = 'Sdate'
WHERE p.TYPE = 'Marketing' 
  AND CONVERT(VARCHAR, CONVERT(DATE, p1.value), 104) = '22.08.2012'

请参阅此 SQLFiddle中的示例。

请注意,您应该将列类型保留为DATE要存储日期的位置。此外,总是更喜欢yyyyMMdd格式。

看看CAST 和 CONVERT (Transact-SQL)

于 2012-11-01T10:33:16.593 回答
2
        SELECT convert(varchar, columnname, 103) from tablename
        or
        SELECT convert(varchar, convert(date,'2012/11/01'), 103)
        or
       SELECT convert(varchar, convert(date,columnname), 103) from tablename
=================================
select
p1.VALUE as Sdate
from Process p 
LEFT JOIN PARAMETER p1 on p1.WP_ID=p.ID AND p1.NAME = 'Sdate'
WHERE p.TYPE = 'Marketing' and convert(varchar, convert(date,p1.value), 103) ='22/08/2012'
于 2012-11-01T10:34:19.950 回答