2009-09-17 9 views
21

मैं कैसे एसक्यूएल (SQL सर्वर) आज की तारीख में प्राप्त करने के लिए पता है, लेकिन दिन की शुरुआत के साथ:एसक्यूएल - घंटे की शुरुआत, महीने आदि

select dateadd(DAY, datediff(day, 0, getdate()),0) 
(result:2009-09-17 00:00:00.000) 

मैं जरूरत है (एसक्यूएल में प्राप्त करने के लिए) इस तारीख की शुरुआत के साथ वर्तमान तिथि। उदाहरण के लिए: 2009-09-17 17:00:00 (मैं सही स्वरूप के बारे में परवाह नहीं है)

और मैं जरूरत है आज की तारीख, लेकिन इस महीने की शुरुआत के साथ पाने के लिए: उदाहरण के लिए : 2009-09-01 00: 00: 00.000 (मुझे सटीक प्रारूप की परवाह नहीं है)

क्या आप मेरी मदद कर सकते हैं? अग्रिम धन्यवाद

उत्तर

40

बस दिन कोड की अपनी वर्तमान आरंभ अनुकूलन कोशिश करो!

आप जो चाहते हैं वह महीने की शुरुआत है, घंटे की शुरुआत। इसका सिर्फ एक ही ...

select dateadd(month, datediff(month, 0, getdate()),0) 

select dateadd(hour, datediff(hour, 0, getdate()),0) 
+0

धन्यवाद !!! आपने मेरी बहुत मदद की। –

2

इस

select DATEADD(hh,17,dateadd(DAY, datediff(day, 0, getdate()),0)) 

SELECT CAST('01 ' + CAST(DATENAME(MM, getdate()) AS VARCHAR(15)) + CAST(DATEPART(yyyy, GETDATE()) AS VARCHAR(5)) AS DATETIME) 
+0

पहला: धन्यवाद। दूसरा: आप स्पष्ट रूप से समय निकालते हैं (आपकी पहली क्वेरी में 17, आपकी दूसरी क्वेरी में 01)। मैं इन नंबरों को नहीं रखना चाहता हूं मुझे वर्तमान घंटे की आवश्यकता है। वर्तमान माह –

+0

17 को DATEPART (एचएच, GETDATE()) में बदलें जो आपको वर्तमान घंटे और 01 महीने की शुरुआत के लिए है, क्या मैंने गलत समझा? –

+0

आप आदमी हैं –

1

या आप कोशिश कर सकते हैं इस

दिन के लिए: select CONVERT(datetime, convert(varchar(8), getdate(), 112))

महीने के लिए: select CONVERT(datetime, convert(varchar(6), getdate(), 112)+ '01')

साल के लिए: select CONVERT(datetime, convert(varchar(4), getdate(), 112)+ '0101')

4

इस प्रयास करें:

CAST(CAST(SYSDATETIME() AS DATE) AS DATETIME) 
+1

बस 'CAST (SYSDATETIME() AS DATE) 'मेरे लिए काम करता है – kaybee99

0

सबसे छोटा है: CAST(CURRENT_TIMESTAMP AS DATE)

संबंधित मुद्दे