SELECT GETDATE()
ප්රතිලාභ: 2008-09-22 15:24:13.790
කාල කොටස නොමැතිව මට එම දිනය කොටස අවශ්යයි: 2008-09-22 00:00:00.000
මම එය ලබා ගන්නේ කෙසේද?
SELECT GETDATE()
ප්රතිලාභ: 2008-09-22 15:24:13.790
කාල කොටස නොමැතිව මට එම දිනය කොටස අවශ්යයි: 2008-09-22 00:00:00.000
මම එය ලබා ගන්නේ කෙසේද?
Answers:
මත SQL Server 2008
සහ ඉහළ, ඔබ කළ යුත්තේ CONVERT
මේ දක්වා:
SELECT CONVERT(date, getdate())
පැරණි අනුවාද වල, ඔබට පහත සඳහන් දෑ කළ හැකිය:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
උදාහරණයක් වශයෙන්
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
මට දෙනවා
2008-09-22 00:00:00.000
වාසි:
varchar
<-> datetime
අවශ්ය පරිවර්ථනයන්locale
මයිකල් යෝජනා කළ පරිදි
මෙම ප්රභේදය භාවිතා කරන්න: SELECT DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
select getdate()
SELECT DATEADD(hh, DATEDIFF(hh, 0, getdate()), 0)
SELECT DATEADD(hh, 0, DATEDIFF(hh, 0, getdate()))
SELECT DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, getdate()))
SELECT DATEADD(mm, DATEDIFF(mm, 0, getdate()), 0)
SELECT DATEADD(mm, 0, DATEDIFF(mm, 0, getdate()))
SELECT DATEADD(yy, DATEDIFF(yy, 0, getdate()), 0)
SELECT DATEADD(yy, 0, DATEDIFF(yy, 0, getdate()))
ප්රතිදානය:
2019-04-19 08:09:35.557
2019-04-19 08:00:00.000
4763-02-17 00:00:00.000
2019-04-19 00:00:00.000
2019-04-19 00:00:00.000
2019-04-01 00:00:00.000
1903-12-03 00:00:00.000
2019-01-01 00:00:00.000
1900-04-30 00:00:00.000
datetime
දත්ත වර්ගය ගත නොහැක සියලු කිසිදු කාලය . මම හිතන්නේ ඔබ පරිශීලක ඉදිරිපත් කිරීම සමඟ දත්ත ගබඩා කිරීම ව්යාකූල කරයි. ඔබට අවශ්ය සියල්ල පරිශීලකයාට කාල කොටසක් නොමැති (ශුන්ය නොවේ, හිස්) නූලක් පෙන්වීමේ ක්රමයක් නම් ඔබට අවශ්ය වන්නේ Convert(varchar(30), @Date, 101)
හෝ ඊට සමාන දෙයක්. වැඩි විස්තර සඳහා SQL සේවාදායක පොත් ඔන්ලයින් බලන්න • වාත්තු කර පරිවර්තනය කරන්න.
CAST(... AS DATE)
හෝ CONVERT(DATE, ...)
, මෙම පිටුවේ බොහෝ විට සඳහන් කර ඇත.
SELECT DATEADD(dd, DATEDIFF(dd, 0, @your_date), 0)
නිසා පිළිතුර වෙනස් කිරීමට මම නිර්දේශ කරමි . dd
datepart
datetime
SQLServer 2008 හි දැන් 'දිනය' දත්ත වර්ගයක් ඇති අතර එය කාල සංරචකයක් නොමැති දිනයක් පමණක් අඩංගු වේ. SQLServer 2008 සහ ඉන් ඔබ්බට භාවිතා කරන ඕනෑම කෙනෙකුට පහත සඳහන් දෑ කළ හැකිය:
SELECT CONVERT(date, GETDATE())
SQL 2008 සහ ඊට ඉහළින් භාවිතා කරන්නේ නම්:
select cast(getdate() as date)
DateTime2
ඒ වෙනුවට භාවිතා කරන්න, එය හොඳින් ක්රියාත්මක වේ. sqlfiddle.com/#!6/9eecb7/2833
2015-10-01
, නිසා DateTime
සීමාවන්. කිසිදු වාත්තු කිරීමකින් තොරව උත්සාහ කරන්න Date
, එය ද ලබා දෙයි 2015-10-01
! declare @date1 datetime = '2015-09-30 23:59:59.999';select @date1
=>2015-10-01
වර්චාර් වෙත සංවර්ධනය කිරීමට වඩා DATEADD සහ DATEDIFF හොඳයි. විමසීම් දෙකම එකම ක්රියාත්මක කිරීමේ සැලැස්මක් ඇත, නමුත් ක්රියාත්මක කිරීමේ සැලසුම් මූලික වශයෙන් දත්ත ප්රවේශ ක්රමෝපායන් පිළිබඳව වන අතර සෑම කෑල්ලක්ම ඉටු කිරීමට ගතවන CPU කාලය සඳහා වන ව්යාජ පිරිවැය සැමවිටම හෙළි නොකරයි. විමසුම් දෙකම පේළි මිලියන ගණනක් සහිත වගුවකට එරෙහිව ක්රියාත්මක වන්නේ නම්, ඩේට් ඩිෆ් භාවිතා කරන CPU කාලය පරිවර්තන CPU වේලාවෙන් 1/3 කට ආසන්න විය හැකිය!
විමසුම් සඳහා ක්රියාත්මක කිරීමේ සැලසුම් බැලීමට:
set showplan_text on
GO
DATEADD සහ DATEDIFF යන දෙකම CONVERT_IMPLICIT ක්රියාත්මක කරයි.
බවට පරිවර්තනය විසඳුමක් සමහර කියවීමට, සරල හා පහසු වුවත්, එය වේ මන්දගාමී. දිවා කාලයට නැවත දැමීමේ අවශ්යතාවයක් නොමැත (මෙය ව්යංගයෙන් සේවාදායකයා විසින් කරනු ලැබේ). DateAdd සඳහා DateDiff ක්රමයේ සැබෑ අවශ්යතාවයක් නොමැති බැවින් පූර්ණ සංඛ්යා ප්රති result ලය ද ව්යංගයෙන් දිවා කාලයට පරිවර්තනය වේ.
දින වකවානුවෙන් CONVERT (varchar, MyDate, 101) තෝරන්න
|--Compute Scalar(DEFINE:([Expr1004]=CONVERT(varchar(30),[TEST].[dbo].[DatesTable].[MyDate],101)))
|--Table Scan(OBJECT:([TEST].[dbo].[DatesTable]))
DatesADDED වෙතින් DATEADD (dd, 0, DATEDIFF (dd, 0, MyDate) තෝරන්න
|--Compute Scalar(DEFINE:([Expr1004]=dateadd(day,(0),CONVERT_IMPLICIT(datetime,datediff(day,'1900-01-01 00:00:00.000',CONVERT_IMPLICIT(datetime,[TEST].[dbo].[DatesTable].[MyDate],0)),0))))
|--Table Scan(OBJECT:([TEST].[dbo].[DatesTable]))
Di ඩිගි යෝජනා කළ පරිදි FLOOR () භාවිතා කිරීම ඩේට්ඩිෆ්ට වඩා කාර්ය සාධනයක් ඇති නමුත් දිවා කාලයේ දත්ත වර්ගය පාවීමට හා පසුපසට වාත්තු කිරීම නිර්දේශ නොකරයි.
පිරිමි ළමයින් මතක තබා ගන්න: කිසිවෙකු විශ්වාස නොකරන්න. කාර්ය සාධන සංඛ්යාලේඛන දෙස බලා එය ඔබම පරීක්ෂා කරන්න!
ඔබ ඔබේ ප්රති .ල පරීක්ෂා කිරීමේදී ප්රවේශම් වන්න. සේවාදායකයාට බොහෝ පේළි තේරීමෙන් කාර්ය සාධන වෙනස සැඟවී ඇති අතර ගණනය කිරීම් සිදු කිරීමට වඩා ජාලය හරහා පේළි යැවීමට වැඩි කාලයක් ගත වේ. එබැවින් සියලු පේළි සඳහා වැඩ සේවාදායකයා විසින් සිදු කරන බවට වග බලා ගන්න, නමුත් සේවාදායකයා වෙත පේළි කට්ටලයක් යවා නොමැත.
හැඹිලි ප්රශස්තිකරණය විමසුම් වලට බලපාන විට සමහර පුද්ගලයින්ට ව්යාකූලත්වයක් ඇති බව පෙනේ. එකම කණ්ඩායමක හෝ වෙනම කණ්ඩායම් වල විමසුම් දෙකක් ධාවනය කිරීමෙන් හැඹිලිගත කිරීම කෙරෙහි කිසිදු බලපෑමක් නැත. එබැවින් ඔබට හැඹිලිය අතින් කල් ඉකුත්විය හැකිය, නැතහොත් විමසුම් කිහිප වතාවක්ම ඉදිරියට සහ පසුපසට ධාවනය කළ හැකිය. විමසුම # 2 සඳහා වන ඕනෑම ප්රශස්තිකරණයක් පසුව එන ඕනෑම විමසුමකට බලපානු ඇත, එබැවින් ඔබ කැමති නම් # 1 ක්රියාත්මක කිරීම ඉවත දමන්න.
මෙතන සම්පූර්ණ පරීක්ෂාවක් තිර රචනය සහ කාර්ය සාධනය ප්රතිඵල DateDiff varchar පරිවර්තනයේදී වඩා සැලකිය යුතු වේගවත් වේ ඔප්පු බව.
මේක උත්සාහ කරන්න:
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
ඉහත ප්රකාශය ඔබගේ වර්තමාන ආකෘතිය බවට පරිවර්තනය කරයි YYYY/MM/DD
, කරුණාකර ඔබේ මනාපය තෝරා ගැනීමට මෙම සබැඳිය බලන්න.
mm/dd/yyyy
ආකෘතියකි.
SELECT CONVERT(datetime, CONVERT(varchar, GETDATE(), 101))
දිනය ආකෘතියෙන් ආපසු පැමිණීම සඳහා
CAST (ඇණවුම් දිනය AS දිනය)
ඉහත කේතය 2010 SQL සේවාදායකයේ ක්රියාත්මක වේ
එය 12/12/2013 මෙන් නැවත පැමිණේ
SQL Server 2012 සඳහා පහත කේතය භාවිතා කරන්න
CONVERT(VARCHAR(10), OrderDate , 111)
CONVERT
දිනය පමණක් ආපසු ලබා දීමට ඔබට ශ්රිතය භාවිතා කළ හැකිය . පහත සබැඳිය බලන්න:
SQL සේවාදායකයේ දිනය හා වේලාව හැසිරවීම 2000
පරිවර්තන ශ්රිතය භාවිතා කිරීම සඳහා වන වාක්ය ඛණ්ඩය:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
ඔබට ප්රති result ලය අවශ්ය නම් varchar
, ඔබ ඒ හරහා යා යුතුය
SELECT CONVERT(DATE, GETDATE()) --2014-03-26
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) --2014/03/26
එය දැනටමත් ඉහත සඳහන් කර ඇත.
දිනය හා වේලාව අනුව ඔබට ප්රති result ල අවශ්ය නම්, ඔබ පහත සඳහන් ඕනෑම විමසුමක් භාවිතා කළ යුතුය
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 111)) AS OnlyDate
2014-03-26 00: 00: 00.000
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 112)) AS OnlyDate
2014-03-26 00: 00: 00.000
DECLARE @OnlyDate DATETIME
SET @OnlyDate = DATEDIFF(DD, 0, GETDATE())
SELECT @OnlyDate AS OnlyDate
2014-03-26 00: 00: 00.000
Format()
ශ්රිතය භාවිතා කරන්න .
SQL සේවාදායකය සඳහා දැනටමත් බහුවිධ පිළිතුරු සහ ආකෘතිකරණ වර්ග තිබේ. නමුත් බොහෝ ක්රම තරමක් අපැහැදිලි වන අතර නිශ්චිත දින ආකෘතියට අදාළව ආකෘති වර්ගය හෝ ශ්රිත සඳහා සංඛ්යා මතක තබා ගැනීම ඔබට අපහසු වනු ඇත. SQL සේවාදායකයේ ඊළඟ සංස්කරණ වලදී වඩා හොඳ විකල්පයක් ඇත්තේ එබැවිනි.
FORMAT ( value, format [, culture ] )
ඔබේ නරඹන්නන්ට අනුව දිනය නියම කළ හැකි බැවින් සංස්කෘතික විකල්පය ඉතා ප්රයෝජනවත් වේ.
ඔබ d (කුඩා රටා සඳහා) සහ D (දිගු රටා සඳහා) මතක තබා ගත යුතුය.
2009-06-15T13:45:30 -> 6/15/2009 (en-US)
2009-06-15T13:45:30 -> 15/06/2009 (fr-FR)
2009-06-15T13:45:30 -> 2009/06/15 (ja-JP)
2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)
2009-06-15T13:45:30 -> 15 июня 2009 г. (ru-RU)
2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)
විමසුමේ තවත් උදාහරණ.
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日
ඔබට තවත් ආකෘති අවශ්ය නම්, ඔබට මෙතැනට යා හැකිය:
ඔබට CONVERT භාවිතා කර මුල් ප්රශ්නයට සමාන ප්රතිදානයක් ලබා ගැනීමට අවශ්ය නම්, එනම් yyyy-mm-dd ඉන්පසු CONVERT(varchar(10),[SourceDate as dateTime],121)
පෙර යුවළ පිළිතුරු දුන් කේතයම භාවිතා කරයි, නමුත් ඉර සහිත yyyy-mm-dd බවට පරිවර්තනය කිරීමේ කේතය 121.
මට තත්පරයකට මගේ සබන් පෙට්ටියට පිවිසිය හැකි නම්, මේ ආකාරයේ හැඩතල ගැන්වීම දත්ත ස්ථරයට අයත් නොවන අතර, සත්ය ඩේට්පාර්ට් දත්ත වර්ග පවතින විට SQL සර්වර් 2008 වන තෙක් මෝඩ ඉහළ මට්ටමේ 'උපක්රම' නොමැතිව එය කළ නොහැකි විය. හඳුන්වා දී ඇත. දත්ත ස්ථරයේ එවැනි පරිවර්තනයන් සිදු කිරීම ඔබේ ඩීබීඑම්එස් හි විශාල පිරිවැය නාස්තියකි, නමුත් වඩා වැදගත් දෙය නම්, දෙවැන්න ඔබ මේ වගේ දෙයක් කරන විට, ඔබ මූලික වශයෙන් මතකයේ ඇති අනාථ දත්ත නිර්මාණය කර ඇති අතර පසුව ඔබ නැවත වැඩසටහනකට යනු ඇතැයි මම සිතමි. ඔබට එය වෙනත් 3NF + තීරුවකට නැවත දැමිය නොහැක, නැතහොත් ආපසු හැරවීමකින් තොරව ටයිප් කළ ඕනෑම දෙයකට සංසන්දනය කළ නොහැක, එබැවින් ඔබ කළ සියල්ලම අසාර්ථක වීමේ ලකුණු හඳුන්වා දී ඇති අතර සම්බන්ධතා යොමු කිරීම ඉවත් කර ඇත.
ඔබ සැමවිටම ඉදිරියට ගොස් ඔබගේ ඩේටයිම් දත්ත වර්ගය ඇමතුම් වැඩසටහනට ආපසු ලබා දිය යුතු අතර, පෙර ස්ථරයේ, අවශ්ය ඕනෑම වෙනස් කිරීමක් කරන්න. ඔබ ඇමතුම වෙත ආපසු යාමට පෙර දේවල් පරිවර්තනය කිරීමට ගිය විගස, ඔබ යොමු යොමු අඛණ්ඩතාව පිළිබඳ සියලු බලාපොරොත්තු යෙදුමෙන් ඉවත් කරයි. මෙය කිසියම් ආකාරයක අතින් ආපසු හැරවීමක් සිදු නොකරන්නේ නම්, යාවත්කාලීන කිරීම හෝ මකාදැමීමේ ක්රියාවලිය වළක්වනු ඇත, එය අවශ්ය නොවන විට ඔබේ දත්ත මානව / කේත / ග්රෙම්ලින් දෝෂයකට නිරාවරණය කරයි.
WHERE col >= @Date AND col < DATEADD(DAY, 1, @Date);
- තීරුවෙන් කාලය ඉවත් කිරීමට කිසිම හේතුවක් නැහැ.
@Date
ශුන්ය කාල කොටසක් ඇතැයි උපකල්පනය කිරීම පමණි . එය සත්ය නොවන අවස්ථාවකදී, සේවාදායකයේ පැත්ත කප්පාදු කරන්නේ කෙසේදැයි ඔබ තවමත් දැන සිටිය යුතුය. ආකෘතිකරණ ඉදිරිපත් කිරීමේ ස්තරයට තැබිය යුතු බවට මම මෙම පිළිතුර සමඟ එකඟ වෙමි, නමුත් ඉදිරිපස කෙළවරට එය අත්හැර දැමීමෙන් අදහස් කරන්නේ ඔබ කප්පාදු කිරීමට ඉක්මන් ක්රමයක් දැන සිටිය යුතු නැති බවයි.
SELECT DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), 0)
SELECT DATEADD(DAY, 0, DATEDIFF(DAY,0, GETDATE()))
SELECT CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 101))
සංස්කරණය කරන්න: පළමු ක්රම දෙක අත්යවශ්යයෙන්ම එක හා සමාන වන අතර වර්චර් ක්රමයට පරිවර්තනය කිරීම සිදු කරයි.
select dateadd(dd, datediff(dd, 0, getdate()), 0)
, එම නිසා dd
ගේ නම් ඕනෑම සඳහා සිදු ජින් කළ හැකි වන datepart
ප්රධාන වචන ඔබට තෝරාගන්න කොටස දී දිනය ඇමිණීම සඳහා. ( dd
එය සංක්ෂිප්තයක් පමණක් බව සලකන්න day
.)
දක්වා ඇති ප්රති result ලය ලබා ගැනීම සඳහා මම පහත විධානය භාවිතා කරමි.
SELECT CONVERT(DATETIME,CONVERT(DATE,GETDATE()))
එය ප්රයෝජනවත් යැයි මම සිතමි.
Convert(nvarchar(10), getdate(), 101) ---> 5/12/14
Convert(nvarchar(12), getdate(), 101) ---> 5/12/2014
ඔබ ප්රති results ල තීරුවකට හෝ විචල්යයකට ලබා දෙන්නේ නම්, එයට DATE වර්ගය දෙන්න, සහ පරිවර්තනය ගම්ය වේ.
DECLARE @Date DATE = GETDATE()
SELECT @Date --> 2017-05-03
මම හිතන්නේ මෙය ඔබේ නඩුවේදී සාර්ථක වනු ඇත:
CONVERT(VARCHAR(10),Person.DateOfBirth,111) AS BirthDate
//here date is obtained as 1990/09/25
DECLARE @yourdate DATETIME = '11/1/2014 12:25pm'
SELECT CONVERT(DATE, @yourdate)
හරි, මම ටිකක් පරක්කු වුනත් :), මෙන්න තවත් විසඳුමක්.
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) as DATETIME)
ප්රති ult ලය
2008-09-22 00:00:00.000
ඔබ SQL Server 2012 සහ ඊට වැඩි භාවිතා කරන්නේ නම් ඔබට FORMAT()
මෙවැනි ශ්රිතයක් භාවිතා කළ හැකිය -
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')
පුරාණ MSSQL සේවාදායකය 7.0 භාවිතා කළද, මෙහි කේතය (මෙම සබැඳිය අනුග්රහයෙනි ) එම අවස්ථාවේ මා සොයන ඕනෑම දින ආකෘතියක් ලබා ගැනීමට මට ඉඩ ලබා දුන්නේය:
PRINT '1) Date/time in format MON DD YYYY HH:MI AM (OR PM): ' + CONVERT(CHAR(19),GETDATE())
PRINT '2) Date/time in format MM-DD-YY: ' + CONVERT(CHAR(8),GETDATE(),10)
PRINT '3) Date/time in format MM-DD-YYYY: ' + CONVERT(CHAR(10),GETDATE(),110)
PRINT '4) Date/time in format DD MON YYYY: ' + CONVERT(CHAR(11),GETDATE(),106)
PRINT '5) Date/time in format DD MON YY: ' + CONVERT(CHAR(9),GETDATE(),6)
PRINT '6) Date/time in format DD MON YYYY HH:MM:SS:MMM(24H): ' + CONVERT(CHAR(24),GETDATE(),113)
එය මෙම ප්රතිදානය නිපදවීය:
1) Date/time in format MON DD YYYY HH:MI AM (OR PM): Feb 27 2015 1:14PM
2) Date/time in format MM-DD-YY: 02-27-15
3) Date/time in format MM-DD-YYYY: 02-27-2015
4) Date/time in format DD MON YYYY: 27 Feb 2015
5) Date/time in format DD MON YY: 27 Feb 15
6) Date/time in format DD MON YYYY HH:MM:SS:MMM(24H): 27 Feb 2015 13:14:46:630
දිනය:
CONVERT තෝරන්න (දිනය, GETDATE ()) CAST තෝරන්න (GETDATE () දිනය ලෙස)
කාලය:
CONVERT තෝරන්න (වේලාව, GETDATE (), 114) CAST තෝරන්න (GETDATE () කාලය ලෙස)
ඔබට මේ ආකාරයෙන් කළ හැකිය:
SELECT CONVERT(date, getdate())
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
නිමැවුම් ලෙස:
2008-09-22 00:00:00.000
නැතහොත් සරලවම මේ ආකාරයට කරන්න:
SELECT CONVERT (DATE, GETDATE()) 'Date Part Only'
ප්රති ult ලය:
Date Part Only
--------------
2013-07-14
ඔබ DATE_FORMAT භාවිතා නොකරන්නේ ඇයි (ඔබේ_දත්ත_ තීරුව, '% d-% m-% Y')?
උදා: select DATE_FORMAT( some_datetime_column, '%d-%m-%Y' ) from table_name
'%d-%m-%Y'
කොටස නැවත සකස් කිරීමෙන් ඔබට m, d සහ අවුරුද්දේ අනුක්රමය වෙනස් කළ හැකිය
මෙය පැරණි බව මම දනිමි, නමුත් කිසිවෙකු මේ ආකාරයෙන් එය ප්රකාශ කළේ කොතැනදැයි මම නොදනිමි. මට කිව හැකි දෙයින් මෙය ANSI ප්රමිතියකි.
SELECT CAST(CURRENT_TIMESTAMP AS DATE)
මයික්රොසොෆ්ට් ආයතනයට ANSI සම්මත CURRENT_DATE විචල්යයට සහය දැක්විය හැකි නම් හොඳයි.
select {fn current_date()} as today
මට වැඩ කරයි.
සඳහන් නොකළ පහත සඳහන් දේට මම කැමතියි:
DATEFROMPARTS(DATEPART(yyyy, @mydatetime), DATEPART(mm, @mydatetime), DATEPART(dd, @mydatetime))
එය දේශීය ගැන සැලකිලිමත් වන්නේ නැත, නැතහොත් ද්විත්ව පරිවර්තනයක් කරයි - එක් එක් 'ඩේට්පාර්ට්' බොහෝ විට ගණිතය කළත්. එබැවින් එය ඩැඩිෆ් ක්රමයට වඩා ටිකක් මන්දගාමී විය හැකි නමුත් මට එය වඩා පැහැදිලිය. විශේෂයෙන් මට අවුරුද්ද සහ මාසය අනුව කණ්ඩායම් කිරීමට අවශ්ය වූ විට (දිනය 1 ලෙස සකසන්න).
මෙම අවස්ථාවේ දී, දිනය පමණක්, ඔබ අපි මෙම විමසුම ක්රියාත්මක කරන්නෙමු:
දිනය කොටස සහ දිනය සංයුති කිරීම සඳහා ඔබට පහත සඳහන් දෑ භාවිතා කළ හැකිය:
DATENAME => නිශ්චිත දිනයේ නිශ්චිත දිනය නිරූපණය කරන අක්ෂර මාලාවක් ලබා දෙයි
DATEADD => DATEPART()
වර්ෂය, මාසය, දිනය, පැය, මිනිත්තුව වැනි දිනයක / වේලාවක එක් කොටසක් ආපසු ලබා දීමට ශ්රිතය භාවිතා කරයි.
DATEPART => නිශ්චිත දිනයේ නිශ්චිත දිනය නිරූපණය කරන පූර්ණ සංඛ්යාවක් ලබා දෙයි.
CONVERT()
=> CONVERT()
ශ්රිතය යනු එක් දත්ත වර්ගයක ප්රකාශනයක් තවත් දත්තයකට පරිවර්තනය කරන සාමාන්ය ශ්රිතයකි. CONVERT()
විවිධ හැඩතලවල දිනය / වේලාව දත්ත ප්රදර්ශනය කිරීම සඳහා
ශ්රිතය භාවිතා කළ හැකිය.