1

タイプという名前VALUEのフィールドがあります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

104dd.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 に答える