我有一个
sql table
,其日期列名为 CREATED_TS
,它以不同的格式保存日期,例如。如下图
Feb 20 2012 12:00AM
11/29/12 8:20:53 PM
Feb 20 2012 12:00AM
11/29/12 8:20:53 PM
Feb 20 2012 12:00AM
11/29/12 8:20:53 PM
Nov 16 2011 12:00AM
Feb 20 2012 12:00AM
11/29/12 8:20:52 PM
现在我想将它们转换为格式
mm\dd\yyyy
,因为我正在比较 WHERE
查询的 SELECT
子句中的日期。
我尝试使用
CONVERT(VARCHAR(10),CREATED_TS,101)
但得到的结果是,
Feb 20 201
11/29/12
Feb 20 201
11/29/12
Feb 20 201
11/29/12
Nov 16 201
Feb 20 201
11/29/12
我需要结果,例如。
02/20/2012
以便比较。
任何帮助将不胜感激。
由于您的数据已经在 varchar 中,因此您必须先将其转换为日期:
select convert(varchar(10), cast(ts as date), 101) from <your table>
您在寻找这样的东西吗?
SELECT CASE WHEN LEFT(created_ts, 1) LIKE '[0-9]'
THEN CONVERT(VARCHAR(10), CONVERT(datetime, created_ts, 1), 101)
ELSE CONVERT(VARCHAR(10), CONVERT(datetime, created_ts, 109), 101)
END created_ts
FROM table1
输出:
|创建_TS | |------------| | 2012 年 2 月 20 日 | | 2012 年 11 月 29 日 | | 2012 年 2 月 20 日 | | 2012 年 11 月 29 日 | | 2012 年 2 月 20 日 | | 2012 年 11 月 29 日 | | 2011 年 11 月 16 日 | | 2012 年 2 月 20 日 | | 2012 年 11 月 29 日 |
这里是SQLFiddle演示
用途:
select convert(nvarchar(10), CREATED_TS, 101)
或
select format(cast(CREATED_TS as date), 'MM/dd/yyyy') -- MySQL 3.23 and above
SQL Server 中的日期默认采用 YYYY-MM-DD 格式。如果您想将 SQL Server 中的任何列(出生日期或发货日期、制造日期等)转换为 dd/mm/yyy 格式,您可以使用以下方法。
首先要了解,格式化任何列仅适用于向用户描绘输出,对于数据的存储方式没有任何价值。这意味着数据将以原始格式存储在服务器中,但显示输出时您可以控制其显示方式。
要转换 dd/mm/yyyy 格式的列,您可以使用以下命令:
假设有一个名为 Employee_Details 的表,如下所示:
ID Dept Salary DOB
1 Akash HR 30000 1989-02-25
2 Milind Finance 45000 1975-12-15
3 Ananya Admin 25000 1988-08-13
4 Girish Finance 58000 1989-05-19
5 Ujwala HR 28000 1997-04-26
6 Mahesh Sales 60000 1982-11-15
7 Supriya Marketimg 80000 1979-09-30
8 Nidhi Admin 25789 1980-03-02
9 Jai Sales 70000 1999-07-06
10 Aditya Sales 56000 1980-02-28
我将隐藏 DOB 列,以 dd/mm/yyyy 格式在别名列中显示结果
Select ID,Name,Department,Salary,Convert(nvarchar,DOB,103) as DateofBirth from EMPLOYEE_DETAILS
`````````````````````````````````````````````````````[enter image description here][1]
Hope this will help
[1]: https://i.stack.imgur.com/zCJFc.jpg
(今天日期)ddmmyyyy。
ddmmyyyy “回答以法语格式 mm/dd/yyyy 呈现的接收器。 请注意,这里的名称有点误导——月份和日期数字显示前导零, 例如 1996 年 2 月 1 日是 01/02/96"
^ self printFormat: #(1 2 3 $/ 1 1 2)