62

にクエリがあります。SQL次の形式で日付を取得する必要がありますdd/mm/yy

例: 25/jun/2013.

どうすればそれができconvertますSQL serverか?

4

11 に答える 11

67

ご希望の形式に完全に一致するかどうかはわかりません。convert()しかし、あなたはスタイルに近づくことができます106。次に、スペースを置き換えます。

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
于 2013-06-20T04:50:27.417 に答える
48

SQL Server 2008 には既に複数の回答と書式の種類 があります。ただし、この方法はややあいまいであり、特定の日付形式に関する数値を覚えておくのは難しいでしょう。そのため、次のバージョンの SQL サーバーにはより良いオプションがあります。

SQL Server 2012 以降のバージョンを使用している場合は、 Format() 関数を使用する必要があります。

FORMAT ( value, format [, culture ] )

文化オプションを使用すると、視聴者ごとに日付を指定できます。

DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; 
  
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
      ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
      ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
      ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';

US English Result Great Britain English Result  German Result Simplified Chinese (PRC) Result
----------------  ----------------------------- ------------- -------------------------------------
10/1/2011         01/10/2011                    01.10.2011    2011/10/1

US English Result            Great Britain English Result  German Result                    Chinese (Simplified PRC) Result
---------------------------- ----------------------------- -----------------------------  ---------------------------------------
Saturday, October 01, 2011   01 October 2011               Samstag, 1. Oktober 2011        2011年10月1日
   

OPのソリューションでは、@Martin Smithによってすでに言及されている次の形式を使用できます。

FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')

サンプルの日付形式:

ここに画像の説明を入力

SQL サーバーの日付形式がさらに必要な場合は、次のサイトにアクセスしてください。

  1. カスタムの日付と時刻の形式
  2. 標準の日付と時刻の形式
于 2016-08-23T09:22:29.620 に答える
31

日付を次のような多くの形式に変換できます

SELECT convert(varchar, getdate(), 106)

これは戻りますdd mon yyyy

詳細はこちらこれはあなたを助けるかもしれません

于 2013-06-20T04:51:15.107 に答える
10

以下のクエリを使用してみてください。

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');  

結果: 2013/06/20

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');  

結果: 2013/06/20

于 2013-06-20T04:51:10.623 に答える
2

これを試して

select convert(varchar,getdate(),100)

3 番目のパラメーターは形式で、範囲は から100まで114です。どれでも機能するはずです。

これを使用して日付が必要な場合dd/mmm/yyyy

replace(convert(char(11),getdate(),113),' ','-')

getdate()列名に置き換えます。これは私にとってはうまくいきました。

于 2013-09-14T05:08:10.257 に答える
1

これを試して :

select replace ( convert(varchar,getdate(),106),' ','/')
于 2015-12-04T11:23:49.267 に答える