`

Oracle - 'yyyy-mm-dd' & 'yyyymmdd'

 
阅读更多

 

oracle中日期格式'yyyy-mm-dd'和'yyyymmdd'的区别

 

对于年月日中"日"是个位的情况下,处理不一样,'yyyymmdd'格式没问题,而式'yyyy-mm-dd'格式则不行,请看:

 

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

 

Session altered.

 

SQL> select to_date('2007059','yyyy-mm-dd hh24:mi:ss') from dual;

select to_date('2007059','yyyy-mm-dd hh24:mi:ss') from dual

                 *

ERROR at line 1:

ORA-01861: literal does not match format string

 

 

SQL> select to_date('2007059','yyyy-mm-dd') from dual;

select to_date('2007059','yyyy-mm-dd') from dual

                 *

ERROR at line 1:

ORA-01861: literal does not match format string

 

 

SQL> select to_date('2007059','yyyymmdd')   from dual;

 

TO_DATE('2007059','

-------------------

2007-05-09 00:00:00

 

 

——————————————————————————————————————

日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}和{0:yyyy-MM-dd hh:mm:ss.fff}的区别

{0:yyyy-MM-dd HH:mm:ss.fff}:使用24小时制格式化日期

{0:yyyy-MM-dd hh:mm:ss.fff}:使用12小时制格式化日期

 

以下同理,从左至右分别为-年-月-日 时:分:秒.毫秒

{0:yyyy-MM-dd HH:mm:ss zzz}

{0:yyyy-MM-dd HH:mm:ss.ff zzz}

{0:yyyy-MM-dd HH:mm:ss.fff zzz}

{0:yyyy-MM-dd HH:mm:ss.ffff zzz}

 

以下测试代码

//---假设时间为-2009-03-17 16:50:49.92

object objValue2 = Business.Services.ExecuteScalar(sqliteconnstring, "Select LastUpdate From CmItemClass2 order by LastUpdate desc limit 0,1");

string lastUpdate2 = objValue2 == null ? string.Empty : string.Format("{0:yyyy-MM-dd HH:mm:ss.fff}", objValue2); //--输出2009-03-17 16:50:49.920

string lastUpdate3 = objValue2 == null ? string.Empty : string.Format("{0:yyyy-MM-dd hh:mm:ss.fff}", objValue2); //--输出2009-03-17 04:50:49.920

 

 

//--------------------

y 将指定 DateTime 对象的年份部分显示为位数最多为两位的数字。忽略年的前两位数字。如果年份是一位数字 (1-9),则它显示为一位数字。

yy 将指定 DateTime 对象的年份部分显示为位数最多为两位的数字。忽略年的前两位数字。如果年份是一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。

yyyy 显示指定 DateTime 对象的年份部分(包括世纪)。如果年份长度小于四位,则按需要在前面追加零以使显示的年份长度达到四位。

 

z 仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导或尾随符号(零显示为“+0”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值的范围是 –12 到 +13。如果偏移量为一位数 (0-9),则将其显示为带合适前导符号的一位数。该时区的设置指定为 +X 或 –X,其中 X 是相对 GMT 以小时为单位的偏移量。所显示的偏移量受夏时制的影响。

zz 仅以整小时数为单位显示系统当前时区的时区偏移量。偏移量总显示为带有前导或尾随符号(零显示为“+00”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时数。值范围为 –12 到 +13。如果偏移量为单个数字 (0-9),则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。该时区的设置指定为 +X 或 –X,其中 X 是相对 GMT 以小时为单位的偏移量。所显示的偏移量受夏时制的影响。

zzz, zzz(外加任意数量的附加“z”字符)以小时和分钟为单位显示系统当前时区的时区偏移量。偏移量总是显示为带有前导或尾随符号(零显示为“+00:00”),指示早于格林威治时间 (+) 或迟于格林威治时间 (-) 的小时和分钟数。值范围为 –12 到 +13。如果偏移量为单个数字 (0-9),则将其格式化为前面带有 0 (01-09) 并带有适当的前导符号。该时区的设置指定为 +X 或 –X,其中 X 是相对 GMT 以小时为单位的偏移量。所显示的偏移量受夏时制的影响。

 

 

: 时间分隔符。

/ 日期分隔符。

" 带引号的字符串。显示转义符 (/) 之后两个引号之间的任何字符串的文本值。

' 带引号的字符串。显示两个“'”字符之间的任何字符串的文本值。

%c 其中 c 是标准格式字符,显示与格式字符关联的标准格式模式。

\c 其中 c 是任意字符,转义符将下一个字符显示为文本。在此上下文中,转义符不能用于创建转义序列(如“\n”表示换行)。

任何其他字符 其他字符作为文本直接写入输出字符串。

 

向 DateTime.ToString 传递自定义模式时,模式必须至少为两个字符长。如果只传递“d”,则公共语言运行库将其解释为标准格式说明符,这是因为所有单个格式说明符都被解释为标准格式说明符。如果传递单个“h”,则引发异常,原因是不存在标准的“h”格式说明符。若要只使用单个自定义格式进行格式化,请在说明符的前面或后面添加一个空格。例如,格式字符串“h”被解释为自定义格式字符串。

 

下表显示使用任意值 DateTime.Now(该值显示当前时间)的示例。示例中给出了不同的区域性和时区设置,以阐释更改区域性的影响。可以通过下列方法更改当前区域性:更改 Microsoft Windows 的“日期/时间”控制面板中的值,传递您自己的 DateTimeFormatInfo 对象,或将 CultureInfo 对象设置传递给不同的区域性。此表是说明自定义日期和时间说明符如何影响格式化的快速指南。请参阅该表下面阐释这些说明符的代码示例部分。

 

格式说明符 当前区域性 时区 输出

d, M en-US GMT 12, 4

d, M es-MX GMT 12, 4

d MMMM en-US GMT 12 April

d MMMM es-MX GMT 12 Abril

dddd MMMM yy gg en-US GMT Thursday April 01 A.D.

dddd MMMM yy gg es-MX GMT Jueves Abril 01 DC

h , m: s en-US GMT 6 , 13: 12

hh,mm:ss en-US GMT 06,13:12

HH-mm-ss-tt en-US GMT 06-13-12-AM

hh:mm, G\MT z  en-US GMT 05:13 GMT +0

hh:mm, G\MT z  en-US GMT +10:00 05:13 GMT +10

hh:mm, G\MT zzz en-US GMT 05:13 GMT +00:00

————————————————————————————————————————————————————————————————————

DateTime的Format格式 收藏

 

DateTime的Format格式,前只知道用,没有想到这么细!!

 

 格式字符 关联属性/说明

 d             ShortDatePattern

 D             LongDatePattern

 f              完整日期和时间(长日期和短时间)

 F             FullDateTimePattern(长日期和长时间)

 g             常规(短日期和短时间)

 G            常规(短日期和长时间)

 m、M     MonthDayPattern

 r、R        RFC1123Pattern

 s              用当地时间的 SortableDateTimePattern(基于 ISO 8601)

 t               hortTimePattern

 T              ongTimePattern

 u              niversalSortableDateTimePattern 用于显示通用时间的格式

 U             使用通用时间的完整日期和时间(长日期和长时间)

 y、Y       YearMonthPattern

 

 下表列出了可被合并以构造自定义模式的模式。这些模式是区分大小写的;例如,识别“MM”,但不识别“mm”。如果自定义模式包含空白字符或用单引号括起来的字符,则输出字符串页也将包含这些字符。未定义为格式模式的一部分或未定义为格式字符的字符按其原义复制。

 

 格式模式 说明

 d                月中的某一天。一位数的日期没有前导零。

 dd              月中的某一天。一位数的日期有一个前导零。

 ddd            周中某天的缩写名称,在 AbbreviatedDayNames 中定义。

 dddd          周中某天的完整名称,在 DayNames 中定义。

 M              月份数字。一位数的月份没有前导零。

 MM           月份数字。一位数的月份有一个前导零。

 MMM       月份的缩写名称,在 AbbreviatedMonthNames 中定义。

 MMMM    月份的完整名称,在 MonthNames 中定义。

 y                不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。

 yy              不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。

 yyyy           包括纪元的四位数的年份。

 gg               时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。

 h                12 小时制的小时。一位数的小时数没有前导零。

 hh              12 小时制的小时。一位数的小时数有前导零。

 H               24 小时制的小时。一位数的小时数没有前导零。

 HH            24 小时制的小时。一位数的小时数有前导零。

 m              分钟。一位数的分钟数没有前导零。

 mm            分钟。一位数的分钟数有一个前导零。

 s                秒。一位数的秒数没有前导零。

 ss              秒。一位数的秒数有一个前导零。

 f                秒的小数精度为一位。其余数字被截断。

 ff               秒的小数精度为两位。其余数字被截断。

 fff              秒的小数精度为三位。其余数字被截断。

 ffff             秒的小数精度为四位。其余数字被截断。

 fffff            秒的小数精度为五位。其余数字被截断。

 ffffff           秒的小数精度为六位。其余数字被截断。

 fffffff          秒的小数精度为七位。其余数字被截断。

 t               在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。

 tt              在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。

 z               时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。

 zz             时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。

 zzz            完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。

 :               在 TimeSeparator 中定义的默认时间分隔符。

 /               在 DateSeparator 中定义的默认日期分隔符。

 % c          其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。

 \ c            其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“\\”。

 

 只有上面第二个表中列出的格式模式才能用于创建自定义模式;在第一个表中列出的标准格式字符不能用于创建自定义模式。自定义模式的长度至少为两个字符;例如,

 

 DateTime.ToString( "d") 返回 DateTime 值;“d”是标准短日期模式。

 DateTime.ToString( "%d") 返回月中的某天;“%d”是自定义模式。

 DateTime.ToString( "d ") 返回后面跟有一个空白字符的月中的某天;“d”是自定义模式。

 

 

 

用DateTime.ToString(string format)输出不同格式的日期

DateTime.ToString()函数有四个重载。一般用得多的就是不带参数的那个了。殊不知,DateTime.ToString(string format)功能更强大,能输出不同格式的日期。以下把一些情况罗列出来,供大家参考。有些在MSDN上有的就没有列出来了。

1.         y代表年份,注意是小写的y,大写的Y并不代表年份。

 

2.         M表示月份。

 

3.         d表示日期,注意D并不代表什么。

 

4.         h或H表示小时,h用的是12小时制,H用的是24小时制。

 

5.         m表示分钟。

 

6.         s表示秒。注意S并不代表什么。

 

格式

 输出

 示例

 

 

y

 7

 string yy = DateTime.Now.ToString("y-MM")

 

yy="7-05"

 

yy

 07

 string yy = DateTime.Now.ToString("yy-MM")

 

yy="07-05"

 

yyy或更多的y

 1984

 string yy = DateTime.Now.ToString("yyyy");

 

yy="2007"

 

 

M

 5.

 string mon = DateTime.Parse("1984-05-09")ToString("yyyy-M")

 

mon = "1984-5"

 

MM

 05.

 string mon = DateTime.Parse("1984-05-09")ToString("MM")

 

mon = "05"

 

MMM

 如果是中文版的操作系统,则会输出:五月.

 

如果是英文操作系统,则输入月份前三个字母的简写:May

 string mon = DateTime.Parse("2006-07-01").ToString("MMM")

 

英文版操作系统:Jul

 

中文版操作系统:七月

 

MMMM或更多的M

 如果是中文版的操作系统,则会输出:五月.

 

如果是英文操作系统,则输入月份的全写

 string mon = DateTime.Parse("2006-07-01").ToString("MMM")

 

英文版操作系统:July

 

中文版操作系统:七月

 

日期或星期

 

d

 9

 string dd= DateTime.Parse("1984-05-09")ToString("d")

 

dd= "9"

 

 

 

dd

 09

 string dd= DateTime.Parse("1984-05-09")ToString("dd")

 

dd= "09"

 

ddd

 如果是中文版的操作系统,则会输出星期,如星期三。.

 

如果是英文操作系统,则输出星期的简写:如

 

Wed

 string dd = DateTime.Parse("2006-07-01").ToString("ddd")

 

英文版操作系统:Wed

 

中文版操作系统:星期三

 

dddd或更多的d

 如果是中文版的操作系统,则会输出星期,如星期三。.

 

如果是英文操作系统,则输出星期:如

 

Wednesday

 string dd = DateTime.Parse("2006-07-01").ToString("dddd")

 

英文版操作系统:Wednesday

 

中文版操作系统:星期三

 

小时

 

h

 小时范围:1-12

 string hh = DateTime.Now.ToString(“h”);

 

hh = 8

 

hh或更多的h

 小时范围:1-12

 string hh = DateTime.Now.ToString(“hh”);

 

hh = 08

 

H

 小时范围:0-23

 string hh = DateTime.Now.ToString(“yyyy-H”);

 

hh = 2006-8

 

HH或更多的H

 小时范围:0-23

 string hh = DateTime.Now.ToString(“yyyy-HH”);

 

hh = 2006-08

 

string hh = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”);

 

hh = 2006-18

 

分钟

 

m

 6

 string mm =  DateTime.Now.ToString("yyyy-MM-dd-m");

 

mm = “2006-07-01-6”;

 

mm或更多的m

 06

 string mm =  DateTime.Now.ToString("yyyy-MM-dd-mm");

 

mm = “2006-07-01-06”;

 

 

s

 6

 string mm =  DateTime.Now.ToString("yyyy-MM-dd-s");

 

mm = “2006-07-01-6”;

 

ss或更多的s

 06

 string mm =  DateTime.Now.ToString("yyyy-MM-dd-ss");

 

mm = “2006-07-01-06”;

————————————————————————————————————————————

 
分享到:
评论

相关推荐

    SQL时间转换

    下面的示例展示了如何将系统当前日期转换为“YYYY-MM-DD”的格式: ```sql SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd') FROM DUAL; ``` 这里,`SYSDATE`是Oracle中的一个伪列,它返回系统的当前日期和时间。`TO_CHAR()...

    ORACLE中日期和时间函数汇总

    例如,`TO_CHAR(SYSDATE, 'YYYY-MM-DD')` 将当前日期转换为字符串 'YYYY-MM-DD' 格式。 日期和时间函数 Oracle 中提供了多种日期和时间函数,以下是一些常用的函数: * SYSDATE:返回当前日期和时间。 * CURRENT...

    ORACLE 日期和时间处理汇总

    where rownum ('2002-02-28','yyyy-mm-dd') - to_date('2002-02-01','yyyy-mm-dd')+1 ) where to_char(to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D') not in ('1', '7') ``` 这条语句计算 2002-02-01 到 2002-...

    oracle关于日期时间

    SELECT (TO_DATE('2023-03-15', 'YYYY-MM-DD') - TO_DATE('2023-03-10', 'YYYY-MM-DD')) * 24 * 60 * 60 AS DIFF_TIME FROM DUAL; ``` 这里计算了两个日期之间的秒数差异。为了得到天数,我们可以简化为: ```sql ...

    oracle 日期函数

    WHERE ROWNUM ('2002-02-28', 'YYYY-MM-DD') - TO_DATE('2002-02-01', 'YYYY-MM-DD') + 1 ) WHERE TO_CHAR(TO_DATE('2002-02-01', 'YYYY-MM-DD') + RNUM - 1, 'D') NOT IN ('1', '7') ``` 这个查询将返回 `2002-02-...

    Oracle中TO-DATE格式.docx

    但是,在实际应用中,我们经常需要使用不同的日期格式,例如 YYYY-MM-DD、YYYYMMDD、DD/MM/YYYY 等。这个时候,我们就需要使用 TO_DATE 函数来将字符串转换为日期类型。 TO_DATE 函数的使用非常灵活,我们可以根据...

    oracle处理日期大全

    WHERE ROWNUM ('2002-02-28', 'YYYY-MM-DD') - TO_DATE('2002-02-01', 'YYYY-MM-DD') + 1 ) WHERE TO_CHAR(TO_DATE('2002-02-01', 'YYYY-MM-DD') + RNUM - 1, 'D') NOT IN ('1', '7') ``` 此查询返回2002年2月1日至...

    oracle 日期的处理大全

    例如,`TO_DATE('2002-08-26', 'yyyy-mm-dd')`会将字符串转换为日期格式。`TO_CHAR`函数可以使用各种格式模型来控制日期的显示,如`'J'`用于显示英文完整数字(如'One Hundred Twenty-Two'),`'day'`则显示星期几。...

    oracle中一些date的函数

    WHERE ROWNUM ('2002-02-28', 'yyyy-mm-dd') - TO_DATE('2002-02-01', 'yyyy-mm-dd') + 1) WHERE TO_CHAR(TO_DATE('2002-02-01', 'yyyy-mm-dd') + RNUM - 1, 'D') NOT IN ('1', '7'); ``` 这将返回2002年2月1日至2...

    Oracle日期函数大礼包

    WHERE ROWNUM ('2002-02-28', 'yyyy-mm-dd') - TO_DATE('2002-02-01', 'yyyy-mm-dd') + 1 ) WHERE TO_CHAR(TO_DATE('2002-02-01', 'yyyy-mm-dd') + RNUM - 1, 'D') NOT IN ('1', '7'); ``` 这段代码计算了2002年2...

    oracle日期函数

    SELECT ROWNUM-1 RNUM FROM ALL_OBJECTS WHERE ROWNUM ('2002-02-28','yyyy-mm-dd') - TO_DATE('2002-02-01','yyyy-mm-dd')+1 ) WHERE TO_CHAR(TO_DATE('2002-02-01','yyyy-mm-dd')+RNUM-1, 'D') NOT IN ('1', '7')...

    oracle日期处理全集-日期加减全活儿.docx

    例如,`to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS')` 将当前日期按照 "YYYY-MM-DD HH24:MI:SS" 格式转换为字符串。 next_day 函数 next_day 函数用于返回指定日期后的第一周中的指定天数。其语法为 `next_day(date...

    oracle全套日期用法+函数大全

    - `TO_DATE` 函数用于将字符串转换为日期,例如 `TO_DATE('2002-08-26','yyyy-mm-dd')`。你需要提供日期字符串和对应的格式模型。 - `TO_CHAR` 函数则相反,将日期转换为字符串,例如 `TO_CHAR(sysdate, 'dd Mon ...

    2021-2022收藏的精品资料Oracle日期函数大全.docx

    SELECT (MONTHS_BETWEEN(TO_DATE('2002-08-26', 'yyyy-mm-dd'), TO_DATE('20011201', 'yyyymmdd'))) AS 月份差 FROM DUAL; ``` 以上就是关于Oracle日期时间函数的一些详细介绍和使用示例,希望对你有所帮助。

    java-oracle数据库时间问题.pdf

    例如,我们可以使用 `SimpleDateFormat` 将当前日期时间格式化为 `yyyy-MM-dd` 格式: ```java SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = new Date(); System.out.println...

    oracle日期字符串的相互转换

    - **10位日期格式**:`yyyy-MM-dd`(如2011-11-01表示2011年11月1日)。 ##### 2. 字符串格式 字符串格式通常指的是日期以文本形式存储时使用的格式。常见的有: - `yyyyMMdd` - `yyyy-MM-dd` - `yyyyMMddHH24:MI:...

    Oracle TO-DATE 日期格式大全.docx

    反之,要将字符串转换为日期,可以使用 `SELECT TO_DATE('2004-05-07 13:23:44', 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;` 日期和字符转换函数用法 * 获取当前时间的年份:`SELECT TO_CHAR(SYSDATE, 'yyyy') FROM ...

    oracle 时间相关的sql语句

    SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2013-09-10', 'yyyy-mm-dd'), -1), 'yyyy-mm-dd') FROM DUAL; ``` 这条语句用于获取指定日期(如例子中的`2013-09-10`)前一个月的相同日期。例如,如果指定的日期是2013年9月...

    Oracle 日期时间函数的用法.docx

    WHERE ROWNUM ('2002-02-28', 'yyyy-mm-dd') - TO_DATE('2002-02-01', 'yyyy-mm-dd') + 1 ) WHERE TO_CHAR(TO_DATE('2002-02-01', 'yyyy-mm-dd') + rnum - 1, 'D') NOT IN ('1', '7'); ``` 总的来说,Oracle的日期...

    ORACLE大表分区

    * 13 CHAR YYYY-MM-DD HH24:MI:SSXFF 2011-03-15 22:40:30.765000 * 14 CHAR YYYY"年" 2011年 * 15 CHAR YYYY"年"MM"月" 2011年03月 * 16 CHAR YYYY"年"MM"月"DD"日" 2011年03月15日 * 17 CHAR YYYY"年"MM"月...

Global site tag (gtag.js) - Google Analytics