[英]System year YYYY plus coulmn's value MMDD insert into Database as 'dd-MMM-yyyy' in C#
我要閱讀文本文件,其中有一列格式為 MMDD 的購買日期可用。 正在讀取並成功插入所有記錄。 但是現在我想將“系統年份”和“購買日期”作為“dd-MMM-yyyy”插入到數據庫的日期列中。 示例:如果購買日期為“0812”且系統年份為“19”,則日期將為“12-AUG-19”。 我怎樣才能做到這一點 ?
從 Oracle 開始,您將應用一些轉換:
extract
作用)to_date
應用到它,並使用適當的格式掩碼( mmddyyyy
)to_char
應用於該值,使用所需/最終格式掩碼( dd-mon-yyyy
)像這樣的東西:
SQL> select to_char(to_date('0812' || extract(year from sysdate), 'mmddyyyy'), 'dd-mon-yyyy') result from dual;
----
this is what you have, MMDD
RESULT
-----------
12-aug-2019
SQL>
如果您正在尋找C# 代碼,則可以先Parse
,然后創建所需的DateTime
,最后格式化DateTime
:
string source = @"0812";
int SystemYear = 19;
// Parsed date, note, that year is DateTime.Now.Year, not required SystemYear
DateTime date = DateTime.ParseExact(source, "MMdd", CultureInfo.InvariantCulture);
date = new DateTime(
CultureInfo.InvariantCulture.Calendar.ToFourDigitYear(SystemYear), // SystemYear
date.Month, // same Month
date.Day); // same Day
// "12-AUG-19"
string result = date.ToString("dd'-'MMM'-'yy", CultureInfo.InvariantCulture).ToUpper();
這取決於表列中的數據格式是什么。 如果它是日期類型,那么顯示12-AUG-19
只是一個顯示問題,與插入無關。 如果它是 varchar 列,那么您首先需要從源 fe 讀取您的日期:
var source = "0812";
source += DateTime.Now.Year;
Console.WriteLine(source);
var date = DateTime.ParseExact(source, "MMddyyyy", System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(date);
所以現在你有日期作為DateTime
對象,這取決於你的數據庫結構,如果你將它作為string
到數據庫,或者作為適當的日期列。
在 Oracle 中,您可以使用多種不同的格式插入日期,因此不必使用“DD-mon-YY”格式來在日期列中插入值。 TO_DATE 函數默認使用當前年份值來完成格式:
SQL> SELECT TO_DATE('0812', 'MMDD')from dual;
TO_DATE('0812','M
-----------------
12/08/19 00:00:00
這是我的意思的一個例子:
SQL> CREATE TABLE DATE_SAMPLE ( DATE_VALUE DATE);
Table DATE_SAMPLE creado.
SQL> INSERT INTO DATE_SAMPLE SELECT TO_DATE('0812', 'MMDD')from dual;
1 fila insertadas.
SQL> SELECT TO_CHAR(DATE_VALUE, 'DD-mon-YY') from DATE_SAMPLE;
TO_CHAR(DATE_VALUE,'DD-MON-YY')
---------------------------------------------------------------------------
12-ago-19
您可以在 TO_DATE 函數中插入指定格式的日期,並使用 TO_CHAR 函數以所需格式讀取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.