15

SQL Serverを研究していると、私にはわからないことがあります。

値が次のdatetimeフィールド: 2012-02-26 09:34:00.000

次を使用してテーブルから選択した場合:

CAST(dob2 AS VARCHAR(12) ) AS d1

次のようにフォーマットします。 Feb 26 2012

SQLServerがDateTimeをそのようにフォーマットする方法や理由がわかりません。あなたがそれを使用する場合、datetime2それはしません-誰もが理由を知っていますか?

4

7 に答える 7

7

デフォルトの日付形式は、データベースサーバーの言語設定によって異なります。次のように、セッションごとに変更することもできます。

set language french
select cast(getdate() as varchar(50))
-->
févr 8 2013 9:45AM
于 2013-02-08T09:48:46.820 に答える
7

これを試して:

select convert(varchar, dob2, 101)
select convert(varchar, dob2, 102)
select convert(varchar, dob2, 103)
select convert(varchar, dob2, 104)
select convert(varchar, dob2, 105)
select convert(varchar, dob2, 106)
select convert(varchar, dob2, 107)
select convert(varchar, dob2, 108)
select convert(varchar, dob2, 109)
select convert(varchar, dob2, 110)
select convert(varchar, dob2, 111)
select convert(varchar, dob2, 112)
select convert(varchar, dob2, 113)

参照:http ://msdn.microsoft.com/en-us/library/ms187928.aspx

http://www.w3schools.com/sql/func_convert.asp

于 2013-02-08T09:40:16.687 に答える
5

互換性サポートによると、互換性レベル110では、CAST and CONVERT操作timedatetime2データ型のデフォルトのスタイルは常に121です。クエリが古い動作に依存している場合は、110未満の互換性レベルを使用するか、影響を受けるクエリで0スタイルを明示的に指定してください。

つまり、デフォルト datetime2 。例:および形式(以下)は同じです(最後の0を除く)CAST as varchar 121 formatcol1 col2

SELECT CONVERT(varchar, GETDATE(), 121) col1,
       CAST(convert(datetime2,GETDATE()) as varchar) col2,
       CAST(GETDATE() as varchar) col3

SQL FIDDLE DEMO

--Results
COL1                    | COL2                          | COL3
2013-02-08 09:53:56.223 | 2013-02-08 09:53:56.2230000   | Feb 8 2013 9:53AM

参考までに、CONVERT代わりにを使用する場合は、 MSDNCASTにリストされている特定の形式を指定するために3番目のパラメーターを使用できます

于 2013-02-08T09:48:46.193 に答える
1

MS SQL Serverでは、次のことができます。

SET DATEFORMAT ymd
于 2013-09-24T15:45:38.393 に答える
0
case when isdate(inputdate) = 1 
then convert(datetime, cast(inputdate,datetime2), 103)
else
case when isdate(inputdate) = 0 
then convert(datetime, cast(inputdate,datetime2), 103)
于 2016-10-18T18:57:08.740 に答える
0

これは112と114の私のお気に入りの使用法です

select (convert(varchar, getdate(), 112)+ replace(convert(varchar, getdate(), 114),':','')) as 'Getdate() 

112 + 114 or YYYYMMDDHHMMSSMSS'

結果:

Getdate()112+114またはYYYYMMDDHHMMSSMSS

20171016083349100

于 2017-10-16T12:34:15.587 に答える
0

SQL構文を使用して日付形式を変更するには、このクエリを使用する必要があります

SELECT DATE_FORMAT(`<columnName>`, '%d/%m/%Y') FROM schemaname.tablename;

元:-

たとえば、buglooという名前のスキーマがあり、テーブル名がtbl_company であり、このtbl_company列にはすべて日付形式%yy/%mm/%ddであり、列名はcreatedDateであり、クエリは次のようになります。

SELECT DATE_FORMAT(`createdDate`, '%d/%m/%Y') FROM bugloo.tbl_company;

このクエリを実行した後、私の出力日はに変換されます%dd/%mm/%yyyy

于 2021-03-29T16:01:46.250 に答える