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 convert
it 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:
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 REPLACE
is
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 100
tot 114
, iedereen zou voor je moeten werken.
Als je een datum nodig hebt in dd/mmm/yyyy
gebruik 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)