Excel的日期格式真的常常使人抓狂,
在使用者輸入日期後該欄位真正的值會被Excel轉換成一串數字,
這串數字代表著自1900/1/1到該日期的總天數。
但程式或使用者真正要的,就不是這串數字,
他們就是要日期!要日期!!
So,
為了取得真正的值只好使用TEXT函數來解決了
請愛用
=TEXT(A1,"yyyy/MM/dd")
或有點天真的用
=YEAR (A1) & " / " & MONTH (A1) & " / " & DAY (A1)
謝謝。
Excel的日期格式真的常常使人抓狂,
在使用者輸入日期後該欄位真正的值會被Excel轉換成一串數字,
這串數字代表著自1900/1/1到該日期的總天數。
但程式或使用者真正要的,就不是這串數字,
他們就是要日期!要日期!!
So,
為了取得真正的值只好使用TEXT函數來解決了
請愛用
=TEXT(A1,"yyyy/MM/dd")
或有點天真的用
=YEAR (A1) & " / " & MONTH (A1) & " / " & DAY (A1)
謝謝。
使用linQ的CopyToDataTable時,無資料會產生「來源未包含 DataRow」的錯誤。
上網查了下有很多方式可以用,有的用Any()判斷有資料再進行CopyToDataTable,
但不知為何我Any()叫不出來,只好改將dtEmp 當CopyToDataTable的參數傳入,避免無資料時CopyToDataTable產生「來源未包含 DataRow」的錯誤。
下方為程式碼,可以參考看看。
DataTable dtEmp = new DataTable();
//將 dtEmp 當CopyToDataTable的參數傳入,避免無資料時CopyToDataTable產生「來源未包含 DataRow」的錯誤
(from e in dt_hr_employee.AsEnumerable()
where e.Field<string>("ID") == ID
select e).CopyToDataTable(dtEmp, LoadOption.PreserveChanges);
if (dtEmp.Rows.Count > 0)
{
Session.Add("ID", dtEmp.Rows[0]["ID"]);
Session.Add("department", dtEmp.Rows[0]["部門"]);
Session.Add("Cname", dtEmp.Rows[0]["中文名"]);
Session.Add("Ename", dtEmp.Rows[0]["英文名"]);
}
else {
// 無此人
lblErrMsg.Text = "User Server NG";
}
數字左側補0至指定長度的SQL語法如下
RIGHT(REPLICATE('0', 指定長度) + CAST('123' AS NVARCHAR), 指定長度)
例:RIGHT(REPLICATE('0', 10) + CAST('123' AS NVARCHAR), 10)
~~自動取號的部分~~
假如ID為英文2位數+數字10位數的組合
例:ID0000000001
首先先宣告變數
declare @new_id varchar(20)
接下來就重點戲了,查詢目前取號的最大值並拆解ID的數字部分+1後組裝回去
看一下現在取到第幾號及新的號碼是否正常
SELECT TOP(1) id AS '目前號碼', LEFT(id,2) + RIGHT(REPLICATE('0', 10) + CAST(CAST(RIGHT(id, 10) AS int) + 1 AS NVARCHAR), 10) AS '取新號碼' FROM ID_List ORDER BY id DESC
指派變數的值
set @form_id = (SELECT TOP(1) LEFT(id,2) + RIGHT(REPLICATE('0', 10) + CAST(CAST(RIGHT(id, 10) AS int) + 1 AS NVARCHAR), 10) FROM ID_List ORDER BY id DESC)
就可以使用變數來INSERT、UPDATE了
array 轉 list
array = list.toArray();
list 轉 array
list = Arrays.asList(array);
Excel的日期格式真的常常使人抓狂, 在使用者輸入日期後該欄位真正的值會被Excel轉換成一串數字, 這串數字代表著自1900/1/1到該日期的總天數。 但程式或使用者真正要的,就不是這串數字, 他們就是要日期!要日期!! So, 為了取得真正的值只好使用TEXT函數來解決了 ...