在 MS SQL 6.5 中使用 getDate() 系統函數會取到精度達微秒的時間值,
所以若是只想取得只有 yyyymmdd 部分或是 yyyymmdd hh:mm:ss 部分的時間值就需要加工處理
我們可以利用 Convert 型別轉換函數來處理

語法:CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

select GetDate()
,CONVERT(datetime,CONVERT(char(10), GetDate(),111),111) as YMD
,CONVERT(datetime,CONVERT(char(11), GetDate(),111) + CONVERT(char(8), GetDate(),108),111) as YMDHMS

其中若是 GetDate() = 2005-02-06 11:22:33.456
則 YMD = 2005-02-06
而 YMDHMS = 2005-02-06 11:22:33

另外在 MS SQL 2000 支援較多的 style 格式參數,可參考線上手冊。

如果在 SQL 2000 Server 環境經常使用的話,可以建立成使用者自定函數

CREATE FUNCTION dbo.getDateYMD
(@dt datetime )
RETURNS datetime
AS
BEGIN
RETURN ( CONVERT(datetime,CONVERT(char(10), @dt,111),111) )
END

go

CREATE FUNCTION dbo.getDateYMDHMS
(@dt datetime )
RETURNS datetime
AS
BEGIN
RETURN ( CONVERT(datetime,CONVERT(char(11), @dt,111) + CONVERT(char(8), @dt,108),111) )
END

這樣就可以用下列語法查詢

select getDate(), dbo.getDateYMD(getDate()), dbo.getDateYMDHMS(getDate())