Skip to content

Instantly share code, notes, and snippets.

View robinli's full-sized avatar

Robin Li robinli

View GitHub Profile
@robinli
robinli / Math_Add_Fraction
Created October 26, 2022 06:49
T-SQL | 分數相加 Math_Add_Fraction
GO
/*------------------------------------------------
description: 取最大公約數 : 輾轉相除法(歐幾里德算法)
author: Robin
date: 2022/10/26
testing code:
--------------------------------------------------
select 3, dbo.Math_GetGys(3, 3)
select 3, dbo.Math_GetGys(9, 6)
select 6, dbo.Math_GetGys(12, 6)
@robinli
robinli / T-SQL | convert number of minutes to hh:mm format
Created September 28, 2022 08:56
T-SQL | convert number of minutes to hh:mm format
/*------------------------------------------------
description: convert number of minutes to hh:mm format
author: Robin
date: 2022/09/28
testing code:
--------------------------------------------------
PRINT dbo.FormatMinutesToHHMM(15)
PRINT dbo.FormatMinutesToHHMM(90)
PRINT dbo.FormatMinutesToHHMM(125)
--------------------------------------------------
@robinli
robinli / C# Convert datetime to string by specifying culture
Created June 17, 2022 06:59
C# Convert datetime to string by specifying culture
return System.DateTime.Today.ToString(format, new System.Globalization.CultureInfo("en-US"));
@robinli
robinli / HTML detect scroll end
Created June 17, 2022 05:58
HTML detect scroll end
<html>
<body>
<div id="" style="width:100px; height:1500px; background-color:gold;"></div>
</body>
<script>
window.addEventListener("scroll",()=>{
console.log("----------");
console.log(window.innerHeight);//視窗高度
console.log(window.scrollY);//捲軸垂值位移量
console.log(document.body.scrollHeight);
@robinli
robinli / C# 開機登入自動執行機碼 - 查詢, 註冊, 刪除
Last active June 17, 2022 07:00
C# 開機登入自動執行機碼 - 查詢, 註冊, 刪除
using Microsoft.Win32;
/// <summary>
/// 開機登入自動執行機碼相關操作
/// </summary>
public class RegistryKeyHelper
{
public enum CheckResult
{
NotExistKey,
@robinli
robinli / T-SQL Use DateTime or Date to Filter DateTime - example
Last active June 17, 2022 07:00
T-SQL Use DateTime or Date to Filter DateTime
/*模擬 100 筆資料, 時間值範圍為 2022-01-18 23:59:59.950 ~ 2022-01-19 00:00:00.050*/
DECLARE @WorkOrder AS TABLE(MS int, ModifiedDate datetime);
DECLARE @Current int = 0
, @TotalRows int = 100
, @StartTime datetime = CONVERT(datetime, '2022-01-18 23:59:59')
, @StartMilliSec int = 950;
WHILE(@Current < @TotalRows)
@robinli
robinli / T-SQL for Aging Analysis Report - 01 Source Data
Created January 17, 2022 08:02
T-SQL for Aging Analysis Report
DECLARE @SourceData AS TABLE(DOCNO varchar(16), TRANS_DATE date, AMOUNT int)
insert into @SourceData(DOCNO, TRANS_DATE, AMOUNT)
select DOCNO='2021011501', TRANS_DATE=convert(date,'2021-01-15'),AMOUNT=300 union
select DOCNO='2021052601', TRANS_DATE=convert(date,'2021-05-26'),AMOUNT=400 union
select DOCNO='2021060701', TRANS_DATE=convert(date,'2021-06-07'),AMOUNT=300 union
select DOCNO='2021060801', TRANS_DATE=convert(date,'2021-06-08'),AMOUNT=400 union
select DOCNO='2021060901', TRANS_DATE=convert(date,'2021-06-09'),AMOUNT=700 union
select DOCNO='2021071001', TRANS_DATE=convert(date,'2021-07-10'),AMOUNT=800 union
select DOCNO='2021071101', TRANS_DATE=convert(date,'2021-07-11'),AMOUNT=900 union
@robinli
robinli / T-SQL Two Dimension Pivot Table
Last active June 17, 2022 07:00
T-SQL Two Dimension Pivot Table
/*
將以下原始資料
依各品牌匯總數量、金額的統計表
*/
select BRAND='ASUS', QTY=1, AMT=200
union all
select BRAND='BENQ', QTY=1, AMT=200
union all
select BRAND='ASUS', QTY=1, AMT=200
@robinli
robinli / Blazor NavMenu collapsible submenu
Last active September 17, 2024 20:25
Blazor NavMenu collapsible submenu example - NavMenu.razor
@* NavMenu.razor *@
<div class="top-row pl-4 navbar navbar-dark">
<a class="navbar-brand" href="">BlazorSubMenu</a>
<button class="navbar-toggler" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
</div>
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<ul class="nav flex-column">
@robinli
robinli / T-SQL Select Before and Next Row
Last active June 17, 2022 07:01
T-SQL Select Before and Next Row
DECLARE @TempTable AS TABLE (ID int IDENTITY(1,1), AMT01 numeric(12,4));
insert into @TempTable(AMT01)
values(100),(200),(300);
select P1.*
, [最新一筆] = LAST_VALUE(AMT01) over(order by ID)
, [上一筆] = LAG(AMT01) over(order by ID)
, [下一筆] = LEAD(AMT01) over(order by ID)
from @TempTable P1