Converteer datumformaat in DD / MMM / JJJJJJ-formaat in SQL Server

Ik heb een query in SQL, ik moet een datum krijgen in een formaat van dd/mm/yy

Voorbeeld: 25/jun/2013.

Hoe kan ik convertit voor SQL server?


Antwoord 1, Autoriteit 100%

Ik weet niet zeker of er een exacte overeenkomst is voor het gewenste formaat. Maar je kunt dichtbij komen met convert()en stijl 106. Vervang vervolgens de ruimtes:

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')

Antwoord 2, Autoriteit 71%

Er zijn al meerdere antwoorden en formatteer typen voor SQL Server 2008 . Maar deze methode is enigszins dubbelzinnig en het zou moeilijk voor u zijn om het aantal te onthouden met betrekking tot specifieke datumnotatie. Daarom is er in volgende versies van SQL Server een betere optie.

Als u SQL Server 2012 of bovenstaande versies gebruikt, moet u formaat ( ) functie

FORMAT ( value, format [, culture ] )

Met Culture-optie kunt u datum opgeven zoals per uw kijkers.

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日

Voor de oplossing van OP kunnen we het volgende formaat gebruiken, dat al is genoemd door @Martin Smith:

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

Enkele voorbeelden van datumnotaties:

Als u meer datumnotaties van de SQL-server wilt, gaat u naar:

  1. Aangepaste datum- en tijdnotatie
  2. Standaard datum- en tijdnotatie

Antwoord 3, autoriteit 47%

we kunnen datum naar vele formaten converteren, zoals

SELECT convert(varchar, getdate(), 106)

Dit geeft dd mon yyyy

Meer HierDit kan je helpen


Antwoord 4, autoriteit 15%

Probeer de onderstaande zoekopdracht.

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

Resultaat:20/jun/13

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

Resultaat:20/jun/2013


Antwoord 5, autoriteit 15%

Het geaccepteerde antwoord geeft al de beste oplossing met behulp van ingebouwde opmaakmethoden in 2008.

Opgemerkt moet worden dat de geretourneerde resultaten echter afhankelijk zijn van de taal van de login.

SET language Russian
SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/') 

Retourneren

06/апр/2015

op het moment van schrijven.

Voor mensen die deze vraag tegenkomen op recentere versies van SQL Server is een methode die dit probleem vermijdt – en de noodzaak om REPLACEis

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

In 2005+ zou het mogelijk zijn om een CLR UDF te schrijven die een DateTime, Formatting Pattern en Culture accepteerde om hetzelfde te simuleren.


Antwoord 6, autoriteit 3%

Probeer dit

select convert(varchar,getdate(),100)

derde parameter is formaat, bereik is van 100tot 114, iedereen zou voor je moeten werken.

Als je een datum nodig hebt in dd/mmm/yyyygebruik dan dit:

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

Vervang getdate()door uw kolomnaam. Dit werkte voor mij.


Antwoord 7, autoriteit 3%

U kunt deze zoekopdracht gebruiken-

SELECT FORMAT (getdate(), 'dd/MMM/yy') as date

Hopelijk helpt deze vraag je.

Bedankt!!


Antwoord 8, autoriteit 2%

Probeer dit:

select replace ( convert(varchar,getdate(),106),' ','/')

Antwoord 9

Iedereen die handmatig de datum probeert in te voeren voor de variabele ‘datumtype’ van de sql-server, gebruikt dit formaat bij het invoeren van:

'yyyy-mm-dd'


Antwoord 10

Gewoon formatteren na conversie naar een datum (getest in SQL Server v.2017)

dd/mon/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MMM/yyyy')
dd/mm/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MM/yyyy')
dd/Month/yyyy
Select Format(cast('25/jun/2013' as date),'dd/MMMM/yyyy')

Antwoord 11

Gewoon datum ophalen en converteren

Declare @Date as Date =Getdate()
Select Format(@Date,'dd/MM/yyyy') as [dd/MM/yyyy] // output: 22/10/2020
Select Format(@Date,'dd-MM-yyyy') as [dd-MM-yyyy] // output: 22-10-2020
//string date
Select Format(cast('25/jun/2013' as date),'dd/MM/yyyy') as StringtoDate // output: 25/06/2013

Bron: SQL server datumformaat en converteren (verschillende voorbeelden)

Other episodes