如何将日期转换为“mm/dd/yyyy”格式

问题描述 投票:0回答:6

我有一个

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
以便比较。

任何帮助将不胜感激。

sql sql-server sql-server-2008 t-sql
6个回答
57
投票

由于您的数据已经在 varchar 中,因此您必须先将其转换为日期:

select convert(varchar(10), cast(ts as date), 101) from <your table>

28
投票

CONVERT
Value
101
说明符一起使用,同时将数据转换为
date
:

CONVERT(VARCHAR(10), CAST(Created_TS AS DATE), 101)

5
投票

您在寻找这样的东西吗?

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演示


2
投票

用途:

select convert(nvarchar(10), CREATED_TS, 101)

select format(cast(CREATED_TS as date), 'MM/dd/yyyy') -- MySQL 3.23 and above

0
投票

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

0
投票

(今天日期)ddmmyyyy。

ddmmyyyy “回答以法语格式 mm/dd/yyyy 呈现的接收器。 请注意,这里的名称有点误导——月份和日期数字显示前导零, 例如 1996 年 2 月 1 日是 01/02/96"

^ self printFormat: #(1 2 3 $/ 1 1 2)
© www.soinside.com 2019 - 2024. All rights reserved.