2020年9月11日 星期五

[EXCEL] 快速鍵 用鍵盤快速按出今天日期今天時間

利用EXCEL 想要記錄每天當天的日期 或者是 當下的時間 可以利用快速鍵完成


如果想要用鍵盤快速得到下面的樣式


可以先按下 Ctrl + ;  會出現今天的日期

2020/8/24


接著按下  Ctrl + Shift + ;  會出現現在的時間

9:18


趕快來自己試試看吧 ! 

背起來後這是個方便的小密技唷!


2020年9月10日 星期四

[EXCEL][OFFICE2013]如何在Excel裡面夾帶檔案

第一步

在上方Tab選擇INSERT(插入)按下Object(物件)




第二步

選擇要夾帶的檔案

勾選Display as icon


這樣就可以囉!



2020年9月9日 星期三

[SQL]列出所有TABLE還有使用量 List tables and used size in SQL Server database

有時候這種指令還是蠻好用的,可以一次找出那些TABLE使用量是最高的

語法如下:

select schema_name(tab.schema_id) + '.' + tab.name as [table], 

    cast(sum(spc.used_pages * 8)/1024.00 as numeric(36, 2)) as used_mb,

    cast(sum(spc.total_pages * 8)/1024.00 as numeric(36, 2)) as allocated_mb

from sys.tables tab

    inner join sys.indexes ind 

        on tab.object_id = ind.object_id

    inner join sys.partitions part 

        on ind.object_id = part.object_id and ind.index_id = part.index_id

    inner join sys.allocation_units spc

        on part.partition_id = spc.container_id

group by schema_name(tab.schema_id) + '.' + tab.name

order by sum(spc.used_pages) desc

參考資料

https://dataedo.com/kb/query/sql-server/list-of-tables-by-their-size

2020年9月8日 星期二

[SQL] 將時間資料按每小時分組 SQL Server Group by Count of DateTime Per Hour

想要統計每小時下單的數量 ,所以可以直接下在SQL,將這些時間點按照每一小時統計出來,例如印表機的使用量,讓我可以觀察到列印高峰跟低峰的時段



SELECT   DATEPART(hour, PrintTime) AS OnHour, COUNT(*) AS Total

FROM     PrintingList

WHERE    (PrintTime >= '2020/07/08 00:00:00') AND (PrintTime <= '2020/07/08 23:59:59')

GROUP BY DATEPART(hour, PrintTime)

ORDER BY OnHour







2020年9月4日 星期五

[WINDOWS10]硬碟快滿了怎麼辦 好用工具TreeSize Free

我的C 槽空間,就算都不放資料也常常因為國外的派送,會默默地成長,不知不覺電腦C槽又呈現了紅色的一條橫線,看了不解決就是很難過(幸好不是兩條線 呼~)


我的習慣重要資料是絕對不放在C 槽的,通常只做暫存使用,定期會去清空

但依舊成長到紅色一條槓 實在很惱人

所以使用TreeSize Free來找出到底偷吃空間的怪獸是誰

因為C 槽有些需要最高權限才能查看,所以建議使用Administrator全掃過,這樣比較清楚


下載連結: Treesize_free


2020年8月19日 星期三

[SQL]好用語法:一鍵清空資料並保留資料表名稱

 目前有一個測試用資料庫實際檔案太大,但需要保留DB名稱在裡面卡位,也想保留相關TABLE

所以決定把內容一次清除就好

可以看到檔案原本有7G


下了指令之後原本檔案大小還是沒有改變,最後在DB 屬性修改了Initial Size後變成功縮小

實際做法如下:

2020年7月20日 星期一

[SFTP 架站 ]SERVER FREE SFTP SITE 免費快速架站免安裝 適用多站台

我目前架SFTP SERVER使用的是Rebex Tiny SFTP Server
網址在這兒
是免費的
簡單設定
檔案輕巧
支援多個站台架站
非常推薦!!




官網下載後只要手動修改config檔案
調整為自己需要的參數如下圖
port 可以使用預設22、23
如果要多個站台的時候只要複製這個路徑,再將新的config檔案重新調整到相對應的路徑
另外指定其他不衝突的port就可以了



2020年7月14日 星期二

[Google Sheet] 試算表 表單快速找出重複填單的人


當我們很常利用Google 表單來讓大家做團購或是填單當作統計使用
但Google表單製作尚無法檢查是不是重複登記了
所以我們在蒐集結果的時候,可以有一個比較快速的方法,來立即找出重複的紀錄

首先,表單設計的時候,建議還是要有一組不會跟別人相同的編號、身分證、Email...等,當作這張表單的唯一識別。






當表單結束填寫後,來到回覆表單,可以取得回應結果並顯示在Google 試算表中
























<重頭戲來了>  我們要在B欄位中找出有重複的值,並且用顏色標示出來



在條件式格式規則裡自訂公式:
套用範圍 B:B 
自訂公式 =countif($B:$B,$B1)>1
底色 紫色
這樣就完成啦!




重點複習:
有了下面公式就可以快速看出任一欄位重複的值囉!
countif($B:$B,$B1)>1

2020年6月18日 星期四

[VB.NET][Windows Form] 錯誤訊息System.Exception: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.


錯誤訊息

************** Exception Text **************
System.Exception: Execution Timeout Expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.




原本使用的SQL連線方式如下
 Dim Ds As New DataSet
Conn = New SqlConnection(connStr)
Dim records As New List(Of GUIDO)
Dim SqlTxt As String = ""
SqlTxt += " SELECT * "
SqlTxt += " FROM TESTTABLE "
Dim Cmmd As New SqlCommand(SqlTxt, Conn)
Conn.Open()
Dim Da As New SqlDataAdapter(Cmmd)
Da.Fill(Ds)

後來發現Timeout 的原因為預設30秒,剛好這一段SQL 真的屬於比較複雜,所以我就針對這一段SQL加長timeout的預設值到120
就快速解決問題了

 Dim Ds As New DataSet
Conn = New SqlConnection(connStr)
Dim records As New List(Of GUIDO)
Dim SqlTxt As String = ""
SqlTxt += " SELECT * "
SqlTxt += " FROM TESTTABLE "
Dim Cmmd As New SqlCommand(SqlTxt, Conn)
Conn.Open()
Dim Da As New SqlDataAdapter(Cmmd)
Da.SelectCommand.CommandTimeout = 120
 Da.Fill(Ds)

-後續追蹤-
發現DB 因為最近都沒有執行rebulid index ,所以開始造成查詢緩慢的現象
緊急先將幾個重要的table 執行rebulid後
隔天狀況有改善了,不過最好還是在每天備份的時候順便排程執行rebulid index 會比較好
後續再來分享立即rebulid 的方式 跟 排程rebulid

2020年4月9日 星期四

[EXCEL] [公式] 找出指定的文字


目的:
當EXCEL 某一個欄位中有重複的文字,想要歸類出在指定的一個新的欄位中


例如:
A欄 都會一直重複SERIAL NUMBER:,我們想要找到這段文字後面接續的內容都放置在B欄中


A欄內容
1         TEST1 TEXT SERIAL NUMBER:0123456
2         TEST2 TEXT SERIAL NUMBER:6543210
3         TEST3 TEXT SERIAL NUMBER:7894123   



B欄公式第一步
=FIND("SERIAL NUMBER:",$A1,13)
先找出A1中 所出現的這13各字要在B1中顯現出來

B欄公式第二步
=MID($A1,FIND("SERIAL NUMBER:",$A1,13),25)
再從找到第一步的文字算起,往後再從加上25個字元,這25的數字可以依照你的需求而改


B欄公式第三步

=IFERROR(MID($A1,FIND("SERIAL NUMBER:",$A1,13),25),"")
因為沒有找到的欄位會顯示出#VALUE FAILURE 之類的字樣
為了美觀再加上IFERROR,將沒有找到的文字設定為空白欄位

[OUTLOOK疑難雜症]中文字重疊

症狀:
只有中文字會重疊在一起,會比好朋友還要好一般的擠在一起

治療:
把中文字型重新放到 C:\Windows\Fonts\ ,再重新啟動Outlook 就好了


常見的中文字型檔名如下:
標楷體  kaiu.ttf
細明體&新細明體 mingliu.ttc
新細明體擴充文字更新套件 mingliub.ttc
微軟正黑體 MSJH.TTC
微軟正黑體 msjh.ttf
微軟正黑體粗體 MSJHBD.TTC
微軟正黑體粗體 msjhbd.ttf

2020年4月8日 星期三

[批次指令] 本地資料夾自動與遠端資料夾檔案數同步 [[適用:Server2016、Windows10]

目的:

希望每天利用排程,將本機中的資料夾能自動同步比對與遠端資料夾完全相同,並將每天完成動作記錄下來,且記錄檔名稱皆為當天執行日期


範例:

本地資料夾 D:\publish\

遠端資料夾 \\192.168.0.1\publish\

記錄檔資料夾 D:\Log\


語法:

robocopy \\192.168.0.1\publish\ D:\publish\ /E /log+:D:\Log\Sync_publish_%date:~0,4%%date:~5,2%%date:~8,2%.log



[批次指令] 刪除指定天數前的檔案[[適用:Server2016、Windows10]

目的:清除3天份的備份檔


語法:forfiles /p "D:\DRBackup\DIFF-1" /s /m *.bak /d -3 /c "cmd /c del @file"



參考:
https://docs.microsoft.com/zh-tw/windows-server/administration/windows-commands/forfiles

2020年1月15日 星期三

SQL 常用字串處理語法


取字串中部分字元
SELECT Mem_ID, substring(Mem_ID,4,6) AS MEM_ID_6 
FROM members

語法:substring(欄位, 起始字元, 取幾字元)
ex: A123456789  => substring(Id,4,6) => 456789


取左側字元
SELECT LEFT(engname,5) 
FROM members

語法:left(欄位, 位數)
ex: SELECT LEFT('abcdefghijk',5) => abcde

取右側字元
SELECT RIGHT(engname,5) 
FROM members

語法:right(欄位, 位數)
ex: SELECT RIGHT('abcdefghijk',5) => ghijk

字串大小寫轉換 upperlower
SELECT upper(engname) 
FROM members

語法:upper(欄位)
ex: michael => upper => MICHAEL

SELECT lower(engname) 
FROM members

語法:lower(欄位)
ex: MICHAEL => lower => michael

去除無謂空白 ltrimrtrim
SELECT LTRIM(email) 
FROM members

語法:ltrim(欄位)
ex: "    abd@com" => ltrim => "abd@com"

SELECT RTRIM(memo) 
FROM members

語法:rtrim(欄位)
ex:"Have a nice day.     " => rtrim =>"Have a nice day."

2020年1月9日 星期四

[SQL] 列出DB裡面所有的 TABLE 與 Column

列出DB裡面所有的 TABLE 與 Column


'List All DB Table name
SELECT * 
FROM INFORMATION_SCHEMA.TABLES
where table_type='base Table'
order by TABLE_NAME




'列出Table_Name,Column順序,Column欄位型態,Column,Column長度,ColumnIs_Identity 

select 
    tab.name as Table_Name, 
    col.Column_id,
    col.name as Column_Name, 
    t.name as Data_type,    
    col.Max_Length,
COL.Is_Identity 
from sys.tables as tab
    inner join sys.columns as col
        on tab.object_id = col.object_id
    left join sys.types as t
    on col.user_type_id = t.user_type_id
order by 
    table_name,   col.column_id