5

Tôi đang sử dụng SQL Server 2008 R2. Tôi muốn chuyển đổi ngày hệ thống để định dạng này: dd/mm/yyLàm thế nào để chuyển đổi định dạng ngày hệ thống thành dd/mm/yy trong SQL Server 2008 R2?

"2013-01-01 00:00:00.000" to "Score Calculation - 10/01/13". 

cột của tôi chứa các dữ liệu:

1. DMS01A13010101 
2. RMS01A13010201 
3. 44 
4. 2013-01-01 00:00:00.000 

Những gì tôi muốn: nếu hồ sơ có 2013-01-01 00:00:00.000 ở định dạng này sau đó duy nhất tôi thay đổi để Score Caculation - dd/mm/yy

mã của tôi là,

select 
    case 
     when (CHARINDEX(D30.SPGD30_TRACKED_ADJUSTMENT_X, '-*') > 0 or 
      CHARINDEX(D30.SPGD30_TRACKED_ADJUSTMENT_X, '*-') > 0) 
     then 'Score Calculation - ' + CONVERT(VARCHAR(8), D30.SPGD30_TRACKED_ADJUSTMENT_X, 1) 
    end checkthedate 
from 
    CSPGD30_TRACKING D30 
+0

Làm thế nào mà bạn nhận được trong ngày '10' kể từ ngày của ngày của bạn là' 01' – Habib

Trả lời

13
SELECT CONVERT(varchar(11),getdate(),101) -- mm/dd/yyyy 

    SELECT CONVERT(varchar(11),getdate(),103) -- dd/mm/yyyy 

Kiểm tra điều này. Tôi giả sử D30.SPGD30_TRACKED_ADJUSTMENT_X là datatype datetime.
Đó là lý do tại sao tôi đang sử dụng chức năng CAST() để biến nó thành biểu thức ký tự vì CHARINDEX() hoạt động trên biểu thức ký tự.
Ngoài ra tôi nghĩ rằng không cần điều kiện HOẶC.

select case when CHARINDEX('-',cast(D30.SPGD30_TRACKED_ADJUSTMENT_X as varchar)) > 0 

then 'Score Calculation - '+CONVERT(VARCHAR(11), D30.SPGD30_TRACKED_ADJUSTMENT_X, 103) 
end 

EDIT:

select case when CHARINDEX('-',D30.SPGD30_TRACKED_ADJUSTMENT_X) > 0 
then 'Score Calculation - '+ 
CONVERT(VARCHAR(11), CAST(D30.SPGD30_TRACKED_ADJUSTMENT_X as DATETIME) , 103) 
end 

Xem liên kết này để chuyển đổi sang các định dạng ngày khác: https://www.w3schools.com/sql/func_sqlserver_convert.asp

+0

tôi muốn conver tên cột "D30.SPGD30_TRACKED_ADJUSTMENT_X", nơi tôi có thể đặt rằng –

+0

là 'D30.SPGD30_TRACKED_ADJUSTMENT_X' một cột datetime? –

+0

nó không working..what tôi muốn nếu "-" chứa, sau đó chỉ tôi thay đổi định dạng ngày để dd này/mm/yy –

2

Các truy vấn dưới đây sẽ cho kết quả định dạng dd/mm/yy.

select LEFT(convert(varchar(10), @date, 103),6) + Right(Year(@date)+ 1,2) 
0

Các truy vấn dưới đây sẽ cho kết quả định dạng dd-mmm-yy.

select 
cast(DAY(getdate()) as varchar)+'-'+left(DATEname(m,getdate()),3)+'-'+ 
Right(Year(getdate()),2) 
0
select convert(varchar(8), getdate(), 3) 

chỉ cần sử dụng này cho dd/mm/yy và điều này

select convert(varchar(8), getdate(), 1) 

cho mm/dd/yy

Các vấn đề liên quan